safe-react/safe-contracts/build/contracts/GnosisSafePersonalEdition.json

8247 lines
383 KiB
JSON
Raw Normal View History

2018-05-10 11:12:13 +00:00
{
"contractName": "GnosisSafePersonalEdition",
"abi": [
{
"constant": true,
"inputs": [
{
2018-05-16 13:46:33 +00:00
"name": "owner",
"type": "address"
2018-05-10 11:12:13 +00:00
}
],
2018-05-16 13:46:33 +00:00
"name": "isOwner",
2018-05-10 11:12:13 +00:00
"outputs": [
{
"name": "",
2018-05-16 13:46:33 +00:00
"type": "bool"
2018-05-10 11:12:13 +00:00
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
2018-05-16 13:46:33 +00:00
"name": "to",
2018-05-10 11:12:13 +00:00
"type": "address"
},
{
2018-05-16 13:46:33 +00:00
"name": "value",
"type": "uint256"
},
2018-05-10 11:12:13 +00:00
{
2018-05-16 13:46:33 +00:00
"name": "data",
"type": "bytes"
},
2018-05-10 11:12:13 +00:00
{
2018-05-16 13:46:33 +00:00
"name": "operation",
2018-05-10 11:12:13 +00:00
"type": "uint8"
}
],
2018-05-16 13:46:33 +00:00
"name": "execTransactionFromModule",
2018-05-10 11:12:13 +00:00
"outputs": [
{
2018-05-16 13:46:33 +00:00
"name": "success",
2018-05-10 11:12:13 +00:00
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "module",
"type": "address"
}
],
2018-05-16 13:46:33 +00:00
"name": "enableModule",
2018-05-10 11:12:13 +00:00
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_masterCopy",
"type": "address"
}
],
"name": "changeMasterCopy",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
2018-05-16 13:46:33 +00:00
"inputs": [],
"name": "SENTINEL_MODULES",
2018-05-10 11:12:13 +00:00
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
2018-05-16 13:46:33 +00:00
"name": "prevOwner",
"type": "address"
2018-05-10 11:12:13 +00:00
},
{
"name": "owner",
"type": "address"
},
{
"name": "_threshold",
"type": "uint8"
}
],
"name": "removeOwner",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
2018-05-16 13:46:33 +00:00
{
"constant": true,
"inputs": [],
"name": "SENTINEL_OWNERS",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
2018-05-10 11:12:13 +00:00
{
"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": true,
"inputs": [],
"name": "getOwners",
"outputs": [
{
"name": "",
"type": "address[]"
}
],
"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"
},
2018-05-16 13:46:33 +00:00
{
"constant": true,
"inputs": [],
"name": "getModules",
"outputs": [
{
"name": "",
"type": "address[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
2018-05-10 11:12:13 +00:00
{
"constant": false,
"inputs": [
{
2018-05-16 13:46:33 +00:00
"name": "_threshold",
2018-05-10 11:12:13 +00:00
"type": "uint8"
}
],
2018-05-16 13:46:33 +00:00
"name": "changeThreshold",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
2018-05-10 11:12:13 +00:00
{
2018-05-16 13:46:33 +00:00
"name": "owner",
"type": "address"
},
{
"name": "_threshold",
"type": "uint8"
2018-05-10 11:12:13 +00:00
}
],
2018-05-16 13:46:33 +00:00
"name": "addOwnerWithThreshold",
"outputs": [],
2018-05-10 11:12:13 +00:00
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
2018-05-16 13:46:33 +00:00
"constant": false,
"inputs": [
2018-05-10 11:12:13 +00:00
{
2018-05-16 13:46:33 +00:00
"name": "prevModule",
"type": "address"
},
{
"name": "module",
"type": "address"
2018-05-10 11:12:13 +00:00
}
],
2018-05-16 13:46:33 +00:00
"name": "disableModule",
"outputs": [],
2018-05-10 11:12:13 +00:00
"payable": false,
2018-05-16 13:46:33 +00:00
"stateMutability": "nonpayable",
2018-05-10 11:12:13 +00:00
"type": "function"
},
{
"constant": false,
"inputs": [
{
2018-05-16 13:46:33 +00:00
"name": "prevOwner",
"type": "address"
},
{
"name": "oldOwner",
"type": "address"
},
{
"name": "newOwner",
"type": "address"
2018-05-10 11:12:13 +00:00
}
],
2018-05-16 13:46:33 +00:00
"name": "swapOwner",
2018-05-10 11:12:13 +00:00
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
2018-05-16 13:46:33 +00:00
{
"constant": true,
"inputs": [],
"name": "getThreshold",
"outputs": [
{
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
2018-05-10 11:12:13 +00:00
{
"constant": true,
"inputs": [],
"name": "VERSION",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"payable": true,
"stateMutability": "payable",
"type": "fallback"
},
{
"anonymous": false,
"inputs": [],
"name": "ExecutionFailed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "newContract",
"type": "address"
}
],
"name": "ContractCreation",
"type": "event"
},
{
"constant": false,
"inputs": [
{
"name": "to",
"type": "address"
},
{
"name": "value",
"type": "uint256"
},
{
"name": "data",
"type": "bytes"
},
{
"name": "operation",
"type": "uint8"
},
{
"name": "safeTxGas",
"type": "uint256"
},
{
"name": "dataGas",
"type": "uint256"
},
{
"name": "gasPrice",
"type": "uint256"
},
{
"name": "v",
"type": "uint8[]"
},
{
"name": "r",
"type": "bytes32[]"
},
{
"name": "s",
"type": "bytes32[]"
}
],
2018-05-16 13:46:33 +00:00
"name": "execPayTransaction",
2018-05-10 11:12:13 +00:00
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "executionGas",
"type": "uint256"
},
{
"name": "dataGas",
"type": "uint256"
}
],
"name": "totalGasCosts",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "to",
"type": "address"
},
{
"name": "value",
"type": "uint256"
},
{
"name": "data",
"type": "bytes"
},
{
"name": "operation",
"type": "uint8"
}
],
2018-05-16 13:46:33 +00:00
"name": "requiredTxGas",
2018-05-10 11:12:13 +00:00
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"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": "safeTxGas",
"type": "uint256"
},
{
"name": "dataGas",
"type": "uint256"
},
{
"name": "gasPrice",
"type": "uint256"
},
{
"name": "_nonce",
"type": "uint256"
}
],
"name": "getTransactionHash",
"outputs": [
{
"name": "",
"type": "bytes32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
2018-05-16 13:46:33 +00:00
"bytecode": "0x608060405234801561001057600080fd5b50612b38806100206000396000f300608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a51b01c1461012a5780632f54bf6e146102b1578063468721a71461030c5780634db5d039146103c4578063610b5925146104a85780637de7edef146104eb57806385e332cd1461052e57806386040aa9146105855780638cff6355146105f5578063a04222e11461064c578063a0e67e2b14610725578063a3f4df7e14610791578063ad8a045014610821578063affed0e01461086c578063b2494df314610897578063b7f3358d14610903578063b91a667f14610933578063c4ca3a9c14610983578063e009cfde14610a37578063e318b52b14610a9a578063e75235b814610b1d578063ffa1ad7414610b4e575b005b34801561013657600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610bde565b005b3480156102bd57600080fd5b506102f2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ccb565b604051808215151515815260200191505060405180910390f35b34801561031857600080fd5b506103aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610d4d565b604051808215151515815260200191505060405180910390f35b3480156103d057600080fd5b5061048a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050610dea565b60405180826000191660001916815260200191505060405180910390f35b3480156104b457600080fd5b506104e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611021565b005b3480156104f757600080fd5b5061052c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061129e565b005b34801561053a57600080fd5b50610543611341565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059157600080fd5b506105f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611346565b005b34801561060157600080fd5b5061060a6115cc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561065857600080fd5b5061072360048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506115d1565b005b34801561073157600080fd5b5061073a6115eb565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561077d578082015181840152602081019050610762565b505050509050019250505060405180910390f35b34801561079d57600080fd5b506107a6611786565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107e657808201
"deployedBytecode": "0x608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a51b01c1461012a5780632f54bf6e146102b1578063468721a71461030c5780634db5d039146103c4578063610b5925146104a85780637de7edef146104eb57806385e332cd1461052e57806386040aa9146105855780638cff6355146105f5578063a04222e11461064c578063a0e67e2b14610725578063a3f4df7e14610791578063ad8a045014610821578063affed0e01461086c578063b2494df314610897578063b7f3358d14610903578063b91a667f14610933578063c4ca3a9c14610983578063e009cfde14610a37578063e318b52b14610a9a578063e75235b814610b1d578063ffa1ad7414610b4e575b005b34801561013657600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610bde565b005b3480156102bd57600080fd5b506102f2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ccb565b604051808215151515815260200191505060405180910390f35b34801561031857600080fd5b506103aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610d4d565b604051808215151515815260200191505060405180910390f35b3480156103d057600080fd5b5061048a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050610dea565b60405180826000191660001916815260200191505060405180910390f35b3480156104b457600080fd5b506104e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611021565b005b3480156104f757600080fd5b5061052c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061129e565b005b34801561053a57600080fd5b50610543611341565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059157600080fd5b506105f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611346565b005b34801561060157600080fd5b5061060a6115cc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561065857600080fd5b5061072360048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506115d1565b005b34801561073157600080fd5b5061073a6115eb565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561077d578082015181840152602081019050610762565b505050509050019250505060405180910390f35b34801561079d57600080fd5b506107a6611786565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107e65780820151818401526020810190506107cb565b50505050905090810190601f
"sourceMap": "314:5262:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;314:5262:2;;;;;;;",
"deployedSourceMap": "314:5262:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1443:1003;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1443:1003:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4841:129:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4841:129:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2522:377:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2522:377:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5150:424:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5150:424:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1235:391:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1235:391:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:208:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:55:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:55:6;;;;;;;;;;;;;;;;;;;;;;;;;;;2776:573:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2776:573:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:7;;;;;;;;;;;;;;;;;;;;;;;;;;;693:301:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;693:301:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5052:458:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5052:458:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5052:458:7;;;;;;;;;;;;;;;;;382:60:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;382:60:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;382:60:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2878:209;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2878:209:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;644:20:2;;;;;;;;;;;;;;;;;;;;;;;4423:738:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4423:738:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;4423:738:6;;;;;;;;;;;;;;;;;4398:318:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4398:318:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;1906:528;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1906:528:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3786:299:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3786:299:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1887::6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1887:299:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3683:526:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3683:526:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4722:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4722:113:7;;;;;;;;;;;;;;;;;;;;;;;;;;;448:40:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;448:40:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;448:40:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1443:1003;1748:16;2137;1767:9;1748:28;;1786:103;1796:83;1815:2;1819:5;1826:4;1832:9;1843;1854:7;1863:8;1873:5;;1796:18;:83::i;:::-;1881:1;1884;1887;1786:9;:103::i;:::-;1950:5;;:7;;;;;;;;;;;;;2008:9;602:5;1975:9;:29;:42;;1967:51;;;;;;;;2033:46;2041:2;2045:5;2052:4;2058:9;2069;2033:7;:46::i;:::-;2032:47;2028:100;;;2100:17;;;;;;;;;;2028:100;2156:44;2181:9;2170:8;:20;2192:7;2156:13;:44::i;:::-;2137:63;;2400:9;:18;;:39;2430:8;2419;:19;2400:39;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2400:39:2;1443:1003;;;;;;;;;;;;:::o;4841:129:7:-;4918:4;4962:1;4945:6;:13;4952:5;4945:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;4938:25;;4
"source": "pragma solidity 0.4.23;\nimport \"./GnosisSafe.sol\";\nimport \"./MasterCopy.sol\";\n\n\n/// @title Gnosis Safe Personal Edition - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n/// @author Stefan George - <stefan@gnosis.pm>\n/// @author Richard Meissner - <richard@gnosis.pm>\ncontract GnosisSafePersonalEdition is MasterCopy, GnosisSafe {\n\n string public constant NAME = \"Gnosis Safe Personal Edition\";\n string public constant VERSION = \"0.0.1\";\n \n uint256 internal constant BASE_TX_GAS_COSTS = 21000;\n uint256 internal constant PAYMENT_GAS_COSTS = 11000;\n\n event ExecutionFailed();\n\n uint256 public nonce;\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 safeTxGas Gas that should be used for the Safe transaction.\n /// @param dataGas Gas costs for data used to trigger the safe transaction.\n /// @param gasPrice Gas price that should be used for the payment calculation.\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 function execPayTransaction(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 safeTxGas,\n uint256 dataGas,\n uint256 gasPrice,\n uint8[] v, \n bytes32[] r, \n bytes32[] s\n )\n public\n {\n uint256 startGas = gasleft();\n checkHash(getTransactionHash(to, value, data, operation, safeTxGas, dataGas, gasPrice, nonce), v, r, s);\n // Increase nonce and execute transaction.\n nonce++;\n require(gasleft() - PAYMENT_GAS_COSTS >= safeTxGas);\n if (!execute(to, value, data, operation, safeTxGas)) {\n emit ExecutionFailed();\n }\n uint256 gasCosts = totalGasCosts(startGas - gasleft(), dataGas);\n\n // We transfer the calculated tx costs to the tx.origin to avoid sending it to intermediate contracts that have made calls\n // solium-disable-next-line security/no-tx-origin\n tx.origin.transfer(gasCosts * gasPrice);\n }\n\n /// @dev Calculates the total gas costs for a safe transaction with the gas costs for the execution of the transaction.\n /// @param executionGas Gas costs for the execution of the safe transaction.\n /// @param dataGas Gas costs for data used to trigger the safe transaction.\n /// @return Total gas costs for the execution (this includes gas costs for the payment to tx.origin, base transaction and payload data).\n function totalGasCosts(uint256 executionGas, uint256 dataGas) \n public \n pure\n returns (uint256) \n {\n return executionGas + dataGas + PAYMENT_GAS_COSTS + BASE_TX_GAS_COSTS;\n }\n\n /// @dev Allows to estimate a Safe transaction. \n /// This method can only be used by the safe itself in a transaction. When estimating set `from` to the address of the safe.\n /// Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execPayTransaction`\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 /// @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).\n function requiredTxGas(address to, uint256 value, bytes data, Enum.Operation operation)\n public\n authorized\n returns (uint256)\n {\n uint256 startGas = gasleft();\n re
2018-05-10 11:12:13 +00:00
"sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafePersonalEdition.sol",
"ast": {
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafePersonalEdition.sol",
"exportedSymbols": {
"GnosisSafePersonalEdition": [
2018-05-16 13:46:33 +00:00
324
2018-05-10 11:12:13 +00:00
]
},
2018-05-16 13:46:33 +00:00
"id": 325,
2018-05-10 11:12:13 +00:00
"nodeType": "SourceUnit",
"nodes": [
{
2018-05-16 13:46:33 +00:00
"id": 41,
2018-05-10 11:12:13 +00:00
"literals": [
"solidity",
"0.4",
".23"
],
"nodeType": "PragmaDirective",
2018-05-16 13:46:33 +00:00
"src": "0:23:2"
2018-05-10 11:12:13 +00:00
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol",
"file": "./GnosisSafe.sol",
2018-05-16 13:46:33 +00:00
"id": 42,
2018-05-10 11:12:13 +00:00
"nodeType": "ImportDirective",
2018-05-16 13:46:33 +00:00
"scope": 325,
"sourceUnit": 40,
"src": "24:26:2",
2018-05-10 11:12:13 +00:00
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol",
"file": "./MasterCopy.sol",
2018-05-16 13:46:33 +00:00
"id": 43,
2018-05-10 11:12:13 +00:00
"nodeType": "ImportDirective",
2018-05-16 13:46:33 +00:00
"scope": 325,
"sourceUnit": 581,
"src": "51:26:2",
2018-05-10 11:12:13 +00:00
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
2018-05-16 13:46:33 +00:00
"id": 44,
2018-05-10 11:12:13 +00:00
"name": "MasterCopy",
"nodeType": "UserDefinedTypeName",
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 580,
"src": "352:10:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_contract$_MasterCopy_$580",
2018-05-10 11:12:13 +00:00
"typeString": "contract MasterCopy"
}
},
2018-05-16 13:46:33 +00:00
"id": 45,
2018-05-10 11:12:13 +00:00
"nodeType": "InheritanceSpecifier",
2018-05-16 13:46:33 +00:00
"src": "352:10:2"
2018-05-10 11:12:13 +00:00
},
{
"arguments": null,
"baseName": {
"contractScope": null,
2018-05-16 13:46:33 +00:00
"id": 46,
2018-05-10 11:12:13 +00:00
"name": "GnosisSafe",
"nodeType": "UserDefinedTypeName",
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 39,
"src": "364:10:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_contract$_GnosisSafe_$39",
2018-05-10 11:12:13 +00:00
"typeString": "contract GnosisSafe"
}
},
2018-05-16 13:46:33 +00:00
"id": 47,
2018-05-10 11:12:13 +00:00
"nodeType": "InheritanceSpecifier",
2018-05-16 13:46:33 +00:00
"src": "364:10:2"
2018-05-10 11:12:13 +00:00
}
],
"contractDependencies": [
2018-05-16 13:46:33 +00:00
39,
580,
971,
1343,
1359
2018-05-10 11:12:13 +00:00
],
"contractKind": "contract",
"documentation": "@title Gnosis Safe Personal Edition - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n @author Stefan George - <stefan@gnosis.pm>\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
2018-05-16 13:46:33 +00:00
"id": 324,
2018-05-10 11:12:13 +00:00
"linearizedBaseContracts": [
2018-05-16 13:46:33 +00:00
324,
39,
1343,
971,
580,
1359
2018-05-10 11:12:13 +00:00
],
"name": "GnosisSafePersonalEdition",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": true,
2018-05-16 13:46:33 +00:00
"id": 50,
2018-05-10 11:12:13 +00:00
"name": "NAME",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "382:60:2",
2018-05-10 11:12:13 +00:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 48,
2018-05-10 11:12:13 +00:00
"name": "string",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "382:6:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "476e6f736973205361666520506572736f6e616c2045646974696f6e",
2018-05-16 13:46:33 +00:00
"id": 49,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2018-05-16 13:46:33 +00:00
"src": "412:30:2",
2018-05-10 11:12:13 +00:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_b657d2895d137bf089ce1df776b732639b1ebc2a3aec3bd837e225e9e0965154",
"typeString": "literal_string \"Gnosis Safe Personal Edition\""
},
"value": "Gnosis Safe Personal Edition"
},
"visibility": "public"
},
{
"constant": true,
2018-05-16 13:46:33 +00:00
"id": 53,
2018-05-10 11:12:13 +00:00
"name": "VERSION",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "448:40:2",
2018-05-10 11:12:13 +00:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 51,
2018-05-10 11:12:13 +00:00
"name": "string",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "448:6:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "302e302e31",
2018-05-16 13:46:33 +00:00
"id": 52,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2018-05-16 13:46:33 +00:00
"src": "481:7:2",
2018-05-10 11:12:13 +00:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885",
"typeString": "literal_string \"0.0.1\""
},
"value": "0.0.1"
},
"visibility": "public"
},
{
"constant": true,
2018-05-16 13:46:33 +00:00
"id": 56,
2018-05-10 11:12:13 +00:00
"name": "BASE_TX_GAS_COSTS",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "499:51:2",
2018-05-10 11:12:13 +00:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 54,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "499:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": {
"argumentTypes": null,
"hexValue": "3231303030",
2018-05-16 13:46:33 +00:00
"id": 55,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2018-05-16 13:46:33 +00:00
"src": "545:5:2",
2018-05-10 11:12:13 +00:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_21000_by_1",
"typeString": "int_const 21000"
},
"value": "21000"
},
"visibility": "internal"
},
{
"constant": true,
2018-05-16 13:46:33 +00:00
"id": 59,
2018-05-10 11:12:13 +00:00
"name": "PAYMENT_GAS_COSTS",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "556:51:2",
2018-05-10 11:12:13 +00:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 57,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "556:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"hexValue": "3131303030",
"id": 58,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2018-05-16 13:46:33 +00:00
"src": "602:5:2",
2018-05-10 11:12:13 +00:00
"subdenomination": null,
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_rational_11000_by_1",
"typeString": "int_const 11000"
2018-05-10 11:12:13 +00:00
},
2018-05-16 13:46:33 +00:00
"value": "11000"
2018-05-10 11:12:13 +00:00
},
"visibility": "internal"
},
{
"anonymous": false,
"documentation": null,
2018-05-16 13:46:33 +00:00
"id": 61,
2018-05-10 11:12:13 +00:00
"name": "ExecutionFailed",
"nodeType": "EventDefinition",
"parameters": {
2018-05-16 13:46:33 +00:00
"id": 60,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [],
2018-05-16 13:46:33 +00:00
"src": "635:2:2"
2018-05-10 11:12:13 +00:00
},
2018-05-16 13:46:33 +00:00
"src": "614:24:2"
2018-05-10 11:12:13 +00:00
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 63,
2018-05-10 11:12:13 +00:00
"name": "nonce",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "644:20:2",
2018-05-10 11:12:13 +00:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 62,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "644:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
2018-05-16 13:46:33 +00:00
"id": 155,
2018-05-10 11:12:13 +00:00
"nodeType": "Block",
2018-05-16 13:46:33 +00:00
"src": "1738:708:2",
2018-05-10 11:12:13 +00:00
"statements": [
{
"assignments": [
2018-05-16 13:46:33 +00:00
90
2018-05-10 11:12:13 +00:00
],
"declarations": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 90,
2018-05-10 11:12:13 +00:00
"name": "startGas",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1748:16:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 89,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1748:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"id": 93,
2018-05-10 11:12:13 +00:00
"initialValue": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
2018-05-16 13:46:33 +00:00
"id": 91,
2018-05-10 11:12:13 +00:00
"name": "gasleft",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2389,
"src": "1767:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
2018-05-16 13:46:33 +00:00
"id": 92,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "1767:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
2018-05-16 13:46:33 +00:00
"src": "1748:28:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 96,
2018-05-10 11:12:13 +00:00
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 65,
"src": "1815:2:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 97,
2018-05-10 11:12:13 +00:00
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 67,
"src": "1819:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 98,
2018-05-10 11:12:13 +00:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 69,
"src": "1826:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 99,
2018-05-10 11:12:13 +00:00
"name": "operation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 71,
"src": "1832:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 100,
2018-05-10 11:12:13 +00:00
"name": "safeTxGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 73,
"src": "1843:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 101,
2018-05-10 11:12:13 +00:00
"name": "dataGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 75,
"src": "1854:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 102,
2018-05-10 11:12:13 +00:00
"name": "gasPrice",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 77,
"src": "1863:8:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 103,
2018-05-10 11:12:13 +00:00
"name": "nonce",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 63,
"src": "1873:5:2",
2018-05-10 11:12:13 +00:00
"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"
},
{
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2018-05-16 13:46:33 +00:00
"id": 95,
2018-05-10 11:12:13 +00:00
"name": "getTransactionHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 323,
"src": "1796:18:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$",
2018-05-10 11:12:13 +00:00
"typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,uint256) view returns (bytes32)"
}
},
2018-05-16 13:46:33 +00:00
"id": 104,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "1796:83:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 105,
2018-05-10 11:12:13 +00:00
"name": "v",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 80,
"src": "1881:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr",
"typeString": "uint8[] memory"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 106,
2018-05-10 11:12:13 +00:00
"name": "r",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 83,
"src": "1884:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 107,
2018-05-10 11:12:13 +00:00
"name": "s",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 86,
"src": "1887:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr",
"typeString": "uint8[] memory"
},
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
},
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
],
2018-05-16 13:46:33 +00:00
"id": 94,
2018-05-10 11:12:13 +00:00
"name": "checkHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 283,
"src": "1786:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
"typeString": "function (bytes32,uint8[] memory,bytes32[] memory,bytes32[] memory) view"
}
},
2018-05-16 13:46:33 +00:00
"id": 108,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "1786:103:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-05-16 13:46:33 +00:00
"id": 109,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "1786:103:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 111,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
2018-05-16 13:46:33 +00:00
"src": "1950:7:2",
2018-05-10 11:12:13 +00:00
"subExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 110,
2018-05-10 11:12:13 +00:00
"name": "nonce",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 63,
"src": "1950:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"id": 112,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "1950:7:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 119,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 117,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
2018-05-16 13:46:33 +00:00
"id": 114,
2018-05-10 11:12:13 +00:00
"name": "gasleft",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2389,
"src": "1975:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
2018-05-16 13:46:33 +00:00
"id": 115,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "1975:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 116,
2018-05-10 11:12:13 +00:00
"name": "PAYMENT_GAS_COSTS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 59,
"src": "1987:17:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"src": "1975:29:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 118,
2018-05-10 11:12:13 +00:00
"name": "safeTxGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 73,
"src": "2008:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"src": "1975:42:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
2018-05-16 13:46:33 +00:00
"id": 113,
2018-05-10 11:12:13 +00:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
2018-05-16 13:46:33 +00:00
2399,
2400
2018-05-10 11:12:13 +00:00
],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2399,
"src": "1967:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
2018-05-16 13:46:33 +00:00
"id": 120,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "1967:51:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-05-16 13:46:33 +00:00
"id": 121,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "1967:51:2"
2018-05-10 11:12:13 +00:00
},
{
"condition": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 129,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
2018-05-16 13:46:33 +00:00
"src": "2032:47:2",
2018-05-10 11:12:13 +00:00
"subExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 123,
2018-05-10 11:12:13 +00:00
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 65,
"src": "2041:2:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 124,
2018-05-10 11:12:13 +00:00
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 67,
"src": "2045:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 125,
2018-05-10 11:12:13 +00:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 69,
"src": "2052:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 126,
2018-05-10 11:12:13 +00:00
"name": "operation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 71,
"src": "2058:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 127,
2018-05-10 11:12:13 +00:00
"name": "safeTxGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 73,
"src": "2069:9:2",
2018-05-10 11:12:13 +00:00
"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"
},
{
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2018-05-16 13:46:33 +00:00
"id": 122,
2018-05-10 11:12:13 +00:00
"name": "execute",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 860,
"src": "2033:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bool_$",
2018-05-10 11:12:13 +00:00
"typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)"
}
},
2018-05-16 13:46:33 +00:00
"id": 128,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "2033:46:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
2018-05-16 13:46:33 +00:00
"id": 134,
2018-05-10 11:12:13 +00:00
"nodeType": "IfStatement",
2018-05-16 13:46:33 +00:00
"src": "2028:100:2",
2018-05-10 11:12:13 +00:00
"trueBody": {
2018-05-16 13:46:33 +00:00
"id": 133,
2018-05-10 11:12:13 +00:00
"nodeType": "Block",
2018-05-16 13:46:33 +00:00
"src": "2081:47:2",
2018-05-10 11:12:13 +00:00
"statements": [
{
"eventCall": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
2018-05-16 13:46:33 +00:00
"id": 130,
2018-05-10 11:12:13 +00:00
"name": "ExecutionFailed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 61,
"src": "2100:15:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
2018-05-16 13:46:33 +00:00
"id": 131,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "2100:17:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-05-16 13:46:33 +00:00
"id": 132,
2018-05-10 11:12:13 +00:00
"nodeType": "EmitStatement",
2018-05-16 13:46:33 +00:00
"src": "2095:22:2"
2018-05-10 11:12:13 +00:00
}
]
}
},
{
"assignments": [
2018-05-16 13:46:33 +00:00
136
2018-05-10 11:12:13 +00:00
],
"declarations": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 136,
2018-05-10 11:12:13 +00:00
"name": "gasCosts",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "2137:16:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 135,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "2137:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"id": 144,
2018-05-10 11:12:13 +00:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 141,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 138,
2018-05-10 11:12:13 +00:00
"name": "startGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 90,
"src": "2170:8:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
2018-05-16 13:46:33 +00:00
"id": 139,
2018-05-10 11:12:13 +00:00
"name": "gasleft",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2389,
"src": "2181:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
2018-05-16 13:46:33 +00:00
"id": 140,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "2181:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"src": "2170:20:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 142,
2018-05-10 11:12:13 +00:00
"name": "dataGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 75,
"src": "2192:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2018-05-16 13:46:33 +00:00
"id": 137,
2018-05-10 11:12:13 +00:00
"name": "totalGasCosts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 174,
"src": "2156:13:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
2018-05-16 13:46:33 +00:00
"id": 143,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "2156:44:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
2018-05-16 13:46:33 +00:00
"src": "2137:63:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 152,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 150,
2018-05-10 11:12:13 +00:00
"name": "gasCosts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 136,
"src": "2419:8:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 151,
2018-05-10 11:12:13 +00:00
"name": "gasPrice",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 77,
"src": "2430:8:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"src": "2419:19:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 145,
2018-05-10 11:12:13 +00:00
"name": "tx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2408,
"src": "2400:2:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_magic_transaction",
"typeString": "tx"
}
},
2018-05-16 13:46:33 +00:00
"id": 148,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "origin",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2018-05-16 13:46:33 +00:00
"src": "2400:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2018-05-16 13:46:33 +00:00
"id": 149,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "transfer",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2018-05-16 13:46:33 +00:00
"src": "2400:18:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
2018-05-16 13:46:33 +00:00
"id": 153,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "2400:39:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-05-16 13:46:33 +00:00
"id": 154,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "2400:39:2"
2018-05-10 11:12:13 +00:00
}
]
},
"documentation": "@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 safeTxGas Gas that should be used for the Safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Gas price that should be used for the payment calculation.\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.",
2018-05-16 13:46:33 +00:00
"id": 156,
2018-05-10 11:12:13 +00:00
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
2018-05-16 13:46:33 +00:00
"name": "execPayTransaction",
2018-05-10 11:12:13 +00:00
"nodeType": "FunctionDefinition",
"parameters": {
2018-05-16 13:46:33 +00:00
"id": 87,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 65,
2018-05-10 11:12:13 +00:00
"name": "to",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1480:10:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 64,
2018-05-10 11:12:13 +00:00
"name": "address",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1480:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 67,
2018-05-10 11:12:13 +00:00
"name": "value",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1501:13:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 66,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1501:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 69,
2018-05-10 11:12:13 +00:00
"name": "data",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1525:10:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 68,
2018-05-10 11:12:13 +00:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1525:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 71,
2018-05-10 11:12:13 +00:00
"name": "operation",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1546:24:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
},
"typeName": {
"contractScope": null,
2018-05-16 13:46:33 +00:00
"id": 70,
2018-05-10 11:12:13 +00:00
"name": "Enum.Operation",
"nodeType": "UserDefinedTypeName",
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 5,
"src": "1546:14:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 73,
2018-05-10 11:12:13 +00:00
"name": "safeTxGas",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1581:17:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 72,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1581:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 75,
2018-05-10 11:12:13 +00:00
"name": "dataGas",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1608:15:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 74,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1608:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 77,
2018-05-10 11:12:13 +00:00
"name": "gasPrice",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1633:16:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 76,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1633:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 80,
2018-05-10 11:12:13 +00:00
"name": "v",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1659:9:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr",
"typeString": "uint8[]"
},
"typeName": {
"baseType": {
2018-05-16 13:46:33 +00:00
"id": 78,
2018-05-10 11:12:13 +00:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1659:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
2018-05-16 13:46:33 +00:00
"id": 79,
2018-05-10 11:12:13 +00:00
"length": null,
"nodeType": "ArrayTypeName",
2018-05-16 13:46:33 +00:00
"src": "1659:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr",
"typeString": "uint8[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 83,
2018-05-10 11:12:13 +00:00
"name": "r",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1679:11:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
2018-05-16 13:46:33 +00:00
"id": 81,
2018-05-10 11:12:13 +00:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1679:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2018-05-16 13:46:33 +00:00
"id": 82,
2018-05-10 11:12:13 +00:00
"length": null,
"nodeType": "ArrayTypeName",
2018-05-16 13:46:33 +00:00
"src": "1679:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 86,
2018-05-10 11:12:13 +00:00
"name": "s",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1701:11:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
2018-05-16 13:46:33 +00:00
"id": 84,
2018-05-10 11:12:13 +00:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1701:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2018-05-16 13:46:33 +00:00
"id": 85,
2018-05-10 11:12:13 +00:00
"length": null,
"nodeType": "ArrayTypeName",
2018-05-16 13:46:33 +00:00
"src": "1701:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"src": "1470:248:2"
2018-05-10 11:12:13 +00:00
},
"payable": false,
"returnParameters": {
2018-05-16 13:46:33 +00:00
"id": 88,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [],
2018-05-16 13:46:33 +00:00
"src": "1738:0:2"
2018-05-10 11:12:13 +00:00
},
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "1443:1003:2",
2018-05-10 11:12:13 +00:00
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
2018-05-16 13:46:33 +00:00
"id": 173,
2018-05-10 11:12:13 +00:00
"nodeType": "Block",
2018-05-16 13:46:33 +00:00
"src": "3001:86:2",
2018-05-10 11:12:13 +00:00
"statements": [
{
"expression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 171,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 169,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 167,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 165,
2018-05-10 11:12:13 +00:00
"name": "executionGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 158,
"src": "3018:12:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 166,
2018-05-10 11:12:13 +00:00
"name": "dataGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 160,
"src": "3033:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"src": "3018:22:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 168,
2018-05-10 11:12:13 +00:00
"name": "PAYMENT_GAS_COSTS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 59,
"src": "3043:17:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"src": "3018:42:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 170,
2018-05-10 11:12:13 +00:00
"name": "BASE_TX_GAS_COSTS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 56,
"src": "3063:17:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"src": "3018:62:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"functionReturnParameters": 164,
"id": 172,
2018-05-10 11:12:13 +00:00
"nodeType": "Return",
2018-05-16 13:46:33 +00:00
"src": "3011:69:2"
2018-05-10 11:12:13 +00:00
}
]
},
"documentation": "@dev Calculates the total gas costs for a safe transaction with the gas costs for the execution of the transaction.\n @param executionGas Gas costs for the execution of the safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction.\n @return Total gas costs for the execution (this includes gas costs for the payment to tx.origin, base transaction and payload data).",
2018-05-16 13:46:33 +00:00
"id": 174,
2018-05-10 11:12:13 +00:00
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "totalGasCosts",
"nodeType": "FunctionDefinition",
"parameters": {
2018-05-16 13:46:33 +00:00
"id": 161,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 158,
2018-05-10 11:12:13 +00:00
"name": "executionGas",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 174,
"src": "2901:20:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 157,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "2901:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 160,
2018-05-10 11:12:13 +00:00
"name": "dataGas",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 174,
"src": "2923:15:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 159,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "2923:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"src": "2900:39:2"
2018-05-10 11:12:13 +00:00
},
"payable": false,
"returnParameters": {
2018-05-16 13:46:33 +00:00
"id": 164,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 163,
2018-05-10 11:12:13 +00:00
"name": "",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 174,
"src": "2987:7:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 162,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "2987:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"src": "2986:9:2"
2018-05-10 11:12:13 +00:00
},
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "2878:209:2",
2018-05-10 11:12:13 +00:00
"stateMutability": "pure",
"superFunction": null,
"visibility": "public"
},
{
"body": {
2018-05-16 13:46:33 +00:00
"id": 210,
2018-05-10 11:12:13 +00:00
"nodeType": "Block",
2018-05-16 13:46:33 +00:00
"src": "3938:147:2",
2018-05-10 11:12:13 +00:00
"statements": [
{
"assignments": [
2018-05-16 13:46:33 +00:00
190
2018-05-10 11:12:13 +00:00
],
"declarations": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 190,
2018-05-10 11:12:13 +00:00
"name": "startGas",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 211,
"src": "3948:16:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 189,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "3948:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"id": 193,
2018-05-10 11:12:13 +00:00
"initialValue": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
2018-05-16 13:46:33 +00:00
"id": 191,
2018-05-10 11:12:13 +00:00
"name": "gasleft",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2389,
"src": "3967:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
2018-05-16 13:46:33 +00:00
"id": 192,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "3967:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
2018-05-16 13:46:33 +00:00
"src": "3948:28:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 196,
2018-05-10 11:12:13 +00:00
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 176,
"src": "4002:2:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 197,
2018-05-10 11:12:13 +00:00
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 178,
"src": "4006:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 198,
2018-05-10 11:12:13 +00:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 180,
"src": "4013:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 199,
2018-05-10 11:12:13 +00:00
"name": "operation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 182,
"src": "4019:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
}
},
{
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
2018-05-16 13:46:33 +00:00
"id": 200,
2018-05-10 11:12:13 +00:00
"name": "gasleft",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2389,
"src": "4030:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
2018-05-16 13:46:33 +00:00
"id": 201,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "4030:9:2",
2018-05-10 11:12:13 +00:00
"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"
},
{
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2018-05-16 13:46:33 +00:00
"id": 195,
2018-05-10 11:12:13 +00:00
"name": "execute",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 860,
"src": "3994:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bool_$",
2018-05-10 11:12:13 +00:00
"typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)"
}
},
2018-05-16 13:46:33 +00:00
"id": 202,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "3994:46:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
2018-05-16 13:46:33 +00:00
"id": 194,
2018-05-10 11:12:13 +00:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
2018-05-16 13:46:33 +00:00
2399,
2400
2018-05-10 11:12:13 +00:00
],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2399,
"src": "3986:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
2018-05-16 13:46:33 +00:00
"id": 203,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "3986:55:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-05-16 13:46:33 +00:00
"id": 204,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "3986:55:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 208,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 205,
2018-05-10 11:12:13 +00:00
"name": "startGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 190,
"src": "4058:8:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
2018-05-16 13:46:33 +00:00
"id": 206,
2018-05-10 11:12:13 +00:00
"name": "gasleft",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2389,
"src": "4069:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
2018-05-16 13:46:33 +00:00
"id": 207,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "4069:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"src": "4058:20:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"functionReturnParameters": 188,
"id": 209,
2018-05-10 11:12:13 +00:00
"nodeType": "Return",
2018-05-16 13:46:33 +00:00
"src": "4051:27:2"
2018-05-10 11:12:13 +00:00
}
]
},
2018-05-16 13:46:33 +00:00
"documentation": "@dev Allows to estimate a Safe transaction. \n This method can only be used by the safe itself in a transaction. When estimating set `from` to the address of the safe.\n Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execPayTransaction`\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 @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).",
"id": 211,
2018-05-10 11:12:13 +00:00
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
2018-05-16 13:46:33 +00:00
"id": 185,
2018-05-10 11:12:13 +00:00
"modifierName": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 184,
2018-05-10 11:12:13 +00:00
"name": "authorized",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 1358,
"src": "3897:10:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
2018-05-16 13:46:33 +00:00
"src": "3897:10:2"
2018-05-10 11:12:13 +00:00
}
],
2018-05-16 13:46:33 +00:00
"name": "requiredTxGas",
2018-05-10 11:12:13 +00:00
"nodeType": "FunctionDefinition",
"parameters": {
2018-05-16 13:46:33 +00:00
"id": 183,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 176,
2018-05-10 11:12:13 +00:00
"name": "to",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 211,
"src": "3809:10:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 175,
2018-05-10 11:12:13 +00:00
"name": "address",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "3809:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 178,
2018-05-10 11:12:13 +00:00
"name": "value",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 211,
"src": "3821:13:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 177,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "3821:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 180,
2018-05-10 11:12:13 +00:00
"name": "data",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 211,
"src": "3836:10:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 179,
2018-05-10 11:12:13 +00:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "3836:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 182,
2018-05-10 11:12:13 +00:00
"name": "operation",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 211,
"src": "3848:24:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
},
"typeName": {
"contractScope": null,
2018-05-16 13:46:33 +00:00
"id": 181,
2018-05-10 11:12:13 +00:00
"name": "Enum.Operation",
"nodeType": "UserDefinedTypeName",
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 5,
"src": "3848:14:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"src": "3808:65:2"
2018-05-10 11:12:13 +00:00
},
"payable": false,
"returnParameters": {
2018-05-16 13:46:33 +00:00
"id": 188,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 187,
2018-05-10 11:12:13 +00:00
"name": "",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 211,
"src": "3925:7:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 186,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "3925:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"src": "3924:9:2"
2018-05-10 11:12:13 +00:00
},
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "3786:299:2",
2018-05-10 11:12:13 +00:00
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
2018-05-16 13:46:33 +00:00
"id": 282,
2018-05-10 11:12:13 +00:00
"nodeType": "Block",
2018-05-16 13:46:33 +00:00
"src": "4195:437:2",
2018-05-10 11:12:13 +00:00
"statements": [
{
"assignments": [
2018-05-16 13:46:33 +00:00
226
2018-05-10 11:12:13 +00:00
],
"declarations": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 226,
2018-05-10 11:12:13 +00:00
"name": "lastOwner",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 283,
"src": "4257:17:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 225,
2018-05-10 11:12:13 +00:00
"name": "address",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "4257:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"id": 230,
2018-05-10 11:12:13 +00:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
2018-05-16 13:46:33 +00:00
"id": 228,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2018-05-16 13:46:33 +00:00
"src": "4285:1:2",
2018-05-10 11:12:13 +00:00
"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"
}
],
2018-05-16 13:46:33 +00:00
"id": 227,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2018-05-16 13:46:33 +00:00
"src": "4277:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
2018-05-16 13:46:33 +00:00
"id": 229,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "4277:10:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
2018-05-16 13:46:33 +00:00
"src": "4257:30:2"
2018-05-10 11:12:13 +00:00
},
{
"assignments": [],
"declarations": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 232,
2018-05-10 11:12:13 +00:00
"name": "currentOwner",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 283,
"src": "4297:20:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 231,
2018-05-10 11:12:13 +00:00
"name": "address",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "4297:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"id": 233,
2018-05-10 11:12:13 +00:00
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
2018-05-16 13:46:33 +00:00
"src": "4297:20:2"
2018-05-10 11:12:13 +00:00
},
{
"assignments": [],
"declarations": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 235,
2018-05-10 11:12:13 +00:00
"name": "i",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 283,
"src": "4327:9:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 234,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "4327:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"id": 236,
2018-05-10 11:12:13 +00:00
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
2018-05-16 13:46:33 +00:00
"src": "4327:9:2"
2018-05-10 11:12:13 +00:00
},
{
"body": {
2018-05-16 13:46:33 +00:00
"id": 280,
2018-05-10 11:12:13 +00:00
"nodeType": "Block",
2018-05-16 13:46:33 +00:00
"src": "4420:206:2",
2018-05-10 11:12:13 +00:00
"statements": [
{
"expression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 260,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 247,
2018-05-10 11:12:13 +00:00
"name": "currentOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 232,
"src": "4434:12:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 249,
2018-05-10 11:12:13 +00:00
"name": "hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 213,
"src": "4459:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 250,
2018-05-10 11:12:13 +00:00
"name": "v",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 216,
"src": "4465:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr",
"typeString": "uint8[] memory"
}
},
2018-05-16 13:46:33 +00:00
"id": 252,
2018-05-10 11:12:13 +00:00
"indexExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 251,
2018-05-10 11:12:13 +00:00
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 235,
"src": "4467:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
2018-05-16 13:46:33 +00:00
"src": "4465:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 253,
2018-05-10 11:12:13 +00:00
"name": "r",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 219,
"src": "4471:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
2018-05-16 13:46:33 +00:00
"id": 255,
2018-05-10 11:12:13 +00:00
"indexExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 254,
2018-05-10 11:12:13 +00:00
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 235,
"src": "4473:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
2018-05-16 13:46:33 +00:00
"src": "4471:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 256,
2018-05-10 11:12:13 +00:00
"name": "s",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 222,
"src": "4477:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
2018-05-16 13:46:33 +00:00
"id": 258,
2018-05-10 11:12:13 +00:00
"indexExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 257,
2018-05-10 11:12:13 +00:00
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 235,
"src": "4479:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
2018-05-16 13:46:33 +00:00
"src": "4477:4:2",
2018-05-10 11:12:13 +00:00
"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"
}
],
2018-05-16 13:46:33 +00:00
"id": 248,
2018-05-10 11:12:13 +00:00
"name": "ecrecover",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2388,
"src": "4449:9:2",
2018-05-10 11:12:13 +00:00
"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)"
}
},
2018-05-16 13:46:33 +00:00
"id": 259,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "4449:33:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2018-05-16 13:46:33 +00:00
"src": "4434:48:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2018-05-16 13:46:33 +00:00
"id": 261,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "4434:48:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
2018-05-10 11:12:13 +00:00
},
2018-05-16 13:46:33 +00:00
"id": 267,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
2018-05-10 11:12:13 +00:00
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"baseExpression": {
"argumentTypes": null,
"id": 263,
"name": "owners",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 985,
"src": "4504:6:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_address_$",
"typeString": "mapping(address => address)"
}
},
"id": 265,
"indexExpression": {
"argumentTypes": null,
"id": 264,
"name": "currentOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 232,
"src": "4511:12:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4504:20:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2018-05-16 13:46:33 +00:00
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 266,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4528:1:2",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "4504:25:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
2018-05-16 13:46:33 +00:00
"id": 262,
2018-05-10 11:12:13 +00:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
2018-05-16 13:46:33 +00:00
2399,
2400
2018-05-10 11:12:13 +00:00
],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2399,
"src": "4496:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
2018-05-16 13:46:33 +00:00
"id": 268,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "4496:34:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-05-16 13:46:33 +00:00
"id": 269,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "4496:34:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
2018-05-16 13:46:33 +00:00
"id": 273,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 271,
2018-05-10 11:12:13 +00:00
"name": "currentOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 232,
"src": "4552:12:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 272,
2018-05-10 11:12:13 +00:00
"name": "lastOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 226,
"src": "4567:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2018-05-16 13:46:33 +00:00
"src": "4552:24:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
2018-05-16 13:46:33 +00:00
"id": 270,
2018-05-10 11:12:13 +00:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
2018-05-16 13:46:33 +00:00
2399,
2400
2018-05-10 11:12:13 +00:00
],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2399,
"src": "4544:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
2018-05-16 13:46:33 +00:00
"id": 274,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "4544:33:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-05-16 13:46:33 +00:00
"id": 275,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "4544:33:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 278,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 276,
2018-05-10 11:12:13 +00:00
"name": "lastOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 226,
"src": "4591:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 277,
2018-05-10 11:12:13 +00:00
"name": "currentOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 232,
"src": "4603:12:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2018-05-16 13:46:33 +00:00
"src": "4591:24:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2018-05-16 13:46:33 +00:00
"id": 279,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "4591:24:2"
2018-05-10 11:12:13 +00:00
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 243,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 241,
2018-05-10 11:12:13 +00:00
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 235,
"src": "4400:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 242,
2018-05-10 11:12:13 +00:00
"name": "threshold",
"nodeType": "Identifier",
2018-05-16 13:46:33 +00:00
"overloadedDeclarations": [],
"referencedDeclaration": 989,
"src": "4404:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
2018-05-16 13:46:33 +00:00
"src": "4400:13:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
2018-05-16 13:46:33 +00:00
"id": 281,
2018-05-10 11:12:13 +00:00
"initializationExpression": {
"expression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 239,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 237,
2018-05-10 11:12:13 +00:00
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 235,
"src": "4393:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "30",
2018-05-16 13:46:33 +00:00
"id": 238,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2018-05-16 13:46:33 +00:00
"src": "4397:1:2",
2018-05-10 11:12:13 +00:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
2018-05-16 13:46:33 +00:00
"src": "4393:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"id": 240,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "4393:5:2"
2018-05-10 11:12:13 +00:00
},
"loopExpression": {
"expression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 245,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
2018-05-16 13:46:33 +00:00
"src": "4415:3:2",
2018-05-10 11:12:13 +00:00
"subExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 244,
2018-05-10 11:12:13 +00:00
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 235,
"src": "4415:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"id": 246,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "4415:3:2"
2018-05-10 11:12:13 +00:00
},
"nodeType": "ForStatement",
2018-05-16 13:46:33 +00:00
"src": "4388:238:2"
2018-05-10 11:12:13 +00:00
}
]
},
"documentation": null,
2018-05-16 13:46:33 +00:00
"id": 283,
2018-05-10 11:12:13 +00:00
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "checkHash",
"nodeType": "FunctionDefinition",
"parameters": {
2018-05-16 13:46:33 +00:00
"id": 223,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 213,
2018-05-10 11:12:13 +00:00
"name": "hash",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 283,
"src": "4110:12:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 212,
2018-05-10 11:12:13 +00:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "4110:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 216,
2018-05-10 11:12:13 +00:00
"name": "v",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 283,
"src": "4124:9:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr",
"typeString": "uint8[]"
},
"typeName": {
"baseType": {
2018-05-16 13:46:33 +00:00
"id": 214,
2018-05-10 11:12:13 +00:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "4124:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
2018-05-16 13:46:33 +00:00
"id": 215,
2018-05-10 11:12:13 +00:00
"length": null,
"nodeType": "ArrayTypeName",
2018-05-16 13:46:33 +00:00
"src": "4124:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr",
"typeString": "uint8[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 219,
2018-05-10 11:12:13 +00:00
"name": "r",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 283,
"src": "4135:11:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
2018-05-16 13:46:33 +00:00
"id": 217,
2018-05-10 11:12:13 +00:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "4135:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2018-05-16 13:46:33 +00:00
"id": 218,
2018-05-10 11:12:13 +00:00
"length": null,
"nodeType": "ArrayTypeName",
2018-05-16 13:46:33 +00:00
"src": "4135:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 222,
2018-05-10 11:12:13 +00:00
"name": "s",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 283,
"src": "4148:11:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
2018-05-16 13:46:33 +00:00
"id": 220,
2018-05-10 11:12:13 +00:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "4148:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2018-05-16 13:46:33 +00:00
"id": 221,
2018-05-10 11:12:13 +00:00
"length": null,
"nodeType": "ArrayTypeName",
2018-05-16 13:46:33 +00:00
"src": "4148:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"src": "4109:51:2"
2018-05-10 11:12:13 +00:00
},
"payable": false,
"returnParameters": {
2018-05-16 13:46:33 +00:00
"id": 224,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [],
2018-05-16 13:46:33 +00:00
"src": "4195:0:2"
2018-05-10 11:12:13 +00:00
},
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "4091:541:2",
2018-05-10 11:12:13 +00:00
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
2018-05-16 13:46:33 +00:00
"id": 322,
2018-05-10 11:12:13 +00:00
"nodeType": "Block",
2018-05-16 13:46:33 +00:00
"src": "5448:126:2",
2018-05-10 11:12:13 +00:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30783139",
2018-05-16 13:46:33 +00:00
"id": 306,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2018-05-16 13:46:33 +00:00
"src": "5480:4:2",
2018-05-10 11:12:13 +00:00
"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"
}
],
2018-05-16 13:46:33 +00:00
"id": 305,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2018-05-16 13:46:33 +00:00
"src": "5475:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes1_$",
"typeString": "type(bytes1)"
},
"typeName": "byte"
},
2018-05-16 13:46:33 +00:00
"id": 307,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "5475:10:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
2018-05-16 13:46:33 +00:00
"id": 309,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2018-05-16 13:46:33 +00:00
"src": "5492:1:2",
2018-05-10 11:12:13 +00:00
"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"
}
],
2018-05-16 13:46:33 +00:00
"id": 308,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2018-05-16 13:46:33 +00:00
"src": "5487:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes1_$",
"typeString": "type(bytes1)"
},
"typeName": "byte"
},
2018-05-16 13:46:33 +00:00
"id": 310,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "5487:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 311,
2018-05-10 11:12:13 +00:00
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2423,
"src": "5496:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$324",
2018-05-10 11:12:13 +00:00
"typeString": "contract GnosisSafePersonalEdition"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 312,
2018-05-10 11:12:13 +00:00
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 285,
"src": "5502:2:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 313,
2018-05-10 11:12:13 +00:00
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 287,
"src": "5506:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 314,
2018-05-10 11:12:13 +00:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 289,
"src": "5513:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 315,
2018-05-10 11:12:13 +00:00
"name": "operation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 291,
"src": "5519:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 316,
2018-05-10 11:12:13 +00:00
"name": "safeTxGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 293,
"src": "5530:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 317,
2018-05-10 11:12:13 +00:00
"name": "dataGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 295,
"src": "5541:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 318,
2018-05-10 11:12:13 +00:00
"name": "gasPrice",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 297,
"src": "5550:8:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 319,
2018-05-10 11:12:13 +00:00
"name": "_nonce",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 299,
"src": "5560:6:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
},
{
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
},
{
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$324",
2018-05-10 11:12:13 +00:00
"typeString": "contract GnosisSafePersonalEdition"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2018-05-16 13:46:33 +00:00
"id": 304,
2018-05-10 11:12:13 +00:00
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2390,
"src": "5465:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
2018-05-16 13:46:33 +00:00
"id": 320,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "5465:102:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2018-05-16 13:46:33 +00:00
"functionReturnParameters": 303,
"id": 321,
2018-05-10 11:12:13 +00:00
"nodeType": "Return",
2018-05-16 13:46:33 +00:00
"src": "5458:109:2"
2018-05-10 11:12:13 +00:00
}
]
},
"documentation": "@dev Returns 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 safeTxGas Fas that should be used for the safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param _nonce Transaction nonce.\n @return Transaction hash.",
2018-05-16 13:46:33 +00:00
"id": 323,
2018-05-10 11:12:13 +00:00
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getTransactionHash",
"nodeType": "FunctionDefinition",
"parameters": {
2018-05-16 13:46:33 +00:00
"id": 300,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 285,
2018-05-10 11:12:13 +00:00
"name": "to",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5187:10:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 284,
2018-05-10 11:12:13 +00:00
"name": "address",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "5187:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 287,
2018-05-10 11:12:13 +00:00
"name": "value",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5208:13:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 286,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "5208:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 289,
2018-05-10 11:12:13 +00:00
"name": "data",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5232:10:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 288,
2018-05-10 11:12:13 +00:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "5232:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 291,
2018-05-10 11:12:13 +00:00
"name": "operation",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5253:24:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
},
"typeName": {
"contractScope": null,
2018-05-16 13:46:33 +00:00
"id": 290,
2018-05-10 11:12:13 +00:00
"name": "Enum.Operation",
"nodeType": "UserDefinedTypeName",
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 5,
"src": "5253:14:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 293,
2018-05-10 11:12:13 +00:00
"name": "safeTxGas",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5288:17:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 292,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "5288:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 295,
2018-05-10 11:12:13 +00:00
"name": "dataGas",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5316:15:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 294,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "5316:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 297,
2018-05-10 11:12:13 +00:00
"name": "gasPrice",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5342:16:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 296,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "5342:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 299,
2018-05-10 11:12:13 +00:00
"name": "_nonce",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5369:14:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 298,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "5369:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"src": "5177:212:2"
2018-05-10 11:12:13 +00:00
},
"payable": false,
"returnParameters": {
2018-05-16 13:46:33 +00:00
"id": 303,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 302,
2018-05-10 11:12:13 +00:00
"name": "",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5435:7:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 301,
2018-05-10 11:12:13 +00:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "5435:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"src": "5434:9:2"
2018-05-10 11:12:13 +00:00
},
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "5150:424:2",
2018-05-10 11:12:13 +00:00
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
}
],
2018-05-16 13:46:33 +00:00
"scope": 325,
"src": "314:5262:2"
2018-05-10 11:12:13 +00:00
}
],
2018-05-16 13:46:33 +00:00
"src": "0:5577:2"
2018-05-10 11:12:13 +00:00
},
"legacyAST": {
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafePersonalEdition.sol",
"exportedSymbols": {
"GnosisSafePersonalEdition": [
2018-05-16 13:46:33 +00:00
324
2018-05-10 11:12:13 +00:00
]
},
2018-05-16 13:46:33 +00:00
"id": 325,
2018-05-10 11:12:13 +00:00
"nodeType": "SourceUnit",
"nodes": [
{
2018-05-16 13:46:33 +00:00
"id": 41,
2018-05-10 11:12:13 +00:00
"literals": [
"solidity",
"0.4",
".23"
],
"nodeType": "PragmaDirective",
2018-05-16 13:46:33 +00:00
"src": "0:23:2"
2018-05-10 11:12:13 +00:00
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol",
"file": "./GnosisSafe.sol",
2018-05-16 13:46:33 +00:00
"id": 42,
2018-05-10 11:12:13 +00:00
"nodeType": "ImportDirective",
2018-05-16 13:46:33 +00:00
"scope": 325,
"sourceUnit": 40,
"src": "24:26:2",
2018-05-10 11:12:13 +00:00
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol",
"file": "./MasterCopy.sol",
2018-05-16 13:46:33 +00:00
"id": 43,
2018-05-10 11:12:13 +00:00
"nodeType": "ImportDirective",
2018-05-16 13:46:33 +00:00
"scope": 325,
"sourceUnit": 581,
"src": "51:26:2",
2018-05-10 11:12:13 +00:00
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
2018-05-16 13:46:33 +00:00
"id": 44,
2018-05-10 11:12:13 +00:00
"name": "MasterCopy",
"nodeType": "UserDefinedTypeName",
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 580,
"src": "352:10:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_contract$_MasterCopy_$580",
2018-05-10 11:12:13 +00:00
"typeString": "contract MasterCopy"
}
},
2018-05-16 13:46:33 +00:00
"id": 45,
2018-05-10 11:12:13 +00:00
"nodeType": "InheritanceSpecifier",
2018-05-16 13:46:33 +00:00
"src": "352:10:2"
2018-05-10 11:12:13 +00:00
},
{
"arguments": null,
"baseName": {
"contractScope": null,
2018-05-16 13:46:33 +00:00
"id": 46,
2018-05-10 11:12:13 +00:00
"name": "GnosisSafe",
"nodeType": "UserDefinedTypeName",
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 39,
"src": "364:10:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_contract$_GnosisSafe_$39",
2018-05-10 11:12:13 +00:00
"typeString": "contract GnosisSafe"
}
},
2018-05-16 13:46:33 +00:00
"id": 47,
2018-05-10 11:12:13 +00:00
"nodeType": "InheritanceSpecifier",
2018-05-16 13:46:33 +00:00
"src": "364:10:2"
2018-05-10 11:12:13 +00:00
}
],
"contractDependencies": [
2018-05-16 13:46:33 +00:00
39,
580,
971,
1343,
1359
2018-05-10 11:12:13 +00:00
],
"contractKind": "contract",
"documentation": "@title Gnosis Safe Personal Edition - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n @author Stefan George - <stefan@gnosis.pm>\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
2018-05-16 13:46:33 +00:00
"id": 324,
2018-05-10 11:12:13 +00:00
"linearizedBaseContracts": [
2018-05-16 13:46:33 +00:00
324,
39,
1343,
971,
580,
1359
2018-05-10 11:12:13 +00:00
],
"name": "GnosisSafePersonalEdition",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": true,
2018-05-16 13:46:33 +00:00
"id": 50,
2018-05-10 11:12:13 +00:00
"name": "NAME",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "382:60:2",
2018-05-10 11:12:13 +00:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 48,
2018-05-10 11:12:13 +00:00
"name": "string",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "382:6:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "476e6f736973205361666520506572736f6e616c2045646974696f6e",
2018-05-16 13:46:33 +00:00
"id": 49,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2018-05-16 13:46:33 +00:00
"src": "412:30:2",
2018-05-10 11:12:13 +00:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_b657d2895d137bf089ce1df776b732639b1ebc2a3aec3bd837e225e9e0965154",
"typeString": "literal_string \"Gnosis Safe Personal Edition\""
},
"value": "Gnosis Safe Personal Edition"
},
"visibility": "public"
},
{
"constant": true,
2018-05-16 13:46:33 +00:00
"id": 53,
2018-05-10 11:12:13 +00:00
"name": "VERSION",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "448:40:2",
2018-05-10 11:12:13 +00:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory",
"typeString": "string"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 51,
2018-05-10 11:12:13 +00:00
"name": "string",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "448:6:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "302e302e31",
2018-05-16 13:46:33 +00:00
"id": 52,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
2018-05-16 13:46:33 +00:00
"src": "481:7:2",
2018-05-10 11:12:13 +00:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885",
"typeString": "literal_string \"0.0.1\""
},
"value": "0.0.1"
},
"visibility": "public"
},
{
"constant": true,
2018-05-16 13:46:33 +00:00
"id": 56,
2018-05-10 11:12:13 +00:00
"name": "BASE_TX_GAS_COSTS",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "499:51:2",
2018-05-10 11:12:13 +00:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 54,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "499:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": {
"argumentTypes": null,
"hexValue": "3231303030",
2018-05-16 13:46:33 +00:00
"id": 55,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2018-05-16 13:46:33 +00:00
"src": "545:5:2",
2018-05-10 11:12:13 +00:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_21000_by_1",
"typeString": "int_const 21000"
},
"value": "21000"
},
"visibility": "internal"
},
{
"constant": true,
2018-05-16 13:46:33 +00:00
"id": 59,
2018-05-10 11:12:13 +00:00
"name": "PAYMENT_GAS_COSTS",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "556:51:2",
2018-05-10 11:12:13 +00:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 57,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "556:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"hexValue": "3131303030",
"id": 58,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2018-05-16 13:46:33 +00:00
"src": "602:5:2",
2018-05-10 11:12:13 +00:00
"subdenomination": null,
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_rational_11000_by_1",
"typeString": "int_const 11000"
2018-05-10 11:12:13 +00:00
},
2018-05-16 13:46:33 +00:00
"value": "11000"
2018-05-10 11:12:13 +00:00
},
"visibility": "internal"
},
{
"anonymous": false,
"documentation": null,
2018-05-16 13:46:33 +00:00
"id": 61,
2018-05-10 11:12:13 +00:00
"name": "ExecutionFailed",
"nodeType": "EventDefinition",
"parameters": {
2018-05-16 13:46:33 +00:00
"id": 60,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [],
2018-05-16 13:46:33 +00:00
"src": "635:2:2"
2018-05-10 11:12:13 +00:00
},
2018-05-16 13:46:33 +00:00
"src": "614:24:2"
2018-05-10 11:12:13 +00:00
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 63,
2018-05-10 11:12:13 +00:00
"name": "nonce",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "644:20:2",
2018-05-10 11:12:13 +00:00
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 62,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "644:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "public"
},
{
"body": {
2018-05-16 13:46:33 +00:00
"id": 155,
2018-05-10 11:12:13 +00:00
"nodeType": "Block",
2018-05-16 13:46:33 +00:00
"src": "1738:708:2",
2018-05-10 11:12:13 +00:00
"statements": [
{
"assignments": [
2018-05-16 13:46:33 +00:00
90
2018-05-10 11:12:13 +00:00
],
"declarations": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 90,
2018-05-10 11:12:13 +00:00
"name": "startGas",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1748:16:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 89,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1748:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"id": 93,
2018-05-10 11:12:13 +00:00
"initialValue": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
2018-05-16 13:46:33 +00:00
"id": 91,
2018-05-10 11:12:13 +00:00
"name": "gasleft",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2389,
"src": "1767:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
2018-05-16 13:46:33 +00:00
"id": 92,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "1767:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
2018-05-16 13:46:33 +00:00
"src": "1748:28:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 96,
2018-05-10 11:12:13 +00:00
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 65,
"src": "1815:2:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 97,
2018-05-10 11:12:13 +00:00
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 67,
"src": "1819:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 98,
2018-05-10 11:12:13 +00:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 69,
"src": "1826:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 99,
2018-05-10 11:12:13 +00:00
"name": "operation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 71,
"src": "1832:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 100,
2018-05-10 11:12:13 +00:00
"name": "safeTxGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 73,
"src": "1843:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 101,
2018-05-10 11:12:13 +00:00
"name": "dataGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 75,
"src": "1854:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 102,
2018-05-10 11:12:13 +00:00
"name": "gasPrice",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 77,
"src": "1863:8:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 103,
2018-05-10 11:12:13 +00:00
"name": "nonce",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 63,
"src": "1873:5:2",
2018-05-10 11:12:13 +00:00
"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"
},
{
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2018-05-16 13:46:33 +00:00
"id": 95,
2018-05-10 11:12:13 +00:00
"name": "getTransactionHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 323,
"src": "1796:18:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bytes32_$",
2018-05-10 11:12:13 +00:00
"typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,uint256) view returns (bytes32)"
}
},
2018-05-16 13:46:33 +00:00
"id": 104,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "1796:83:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 105,
2018-05-10 11:12:13 +00:00
"name": "v",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 80,
"src": "1881:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr",
"typeString": "uint8[] memory"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 106,
2018-05-10 11:12:13 +00:00
"name": "r",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 83,
"src": "1884:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 107,
2018-05-10 11:12:13 +00:00
"name": "s",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 86,
"src": "1887:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr",
"typeString": "uint8[] memory"
},
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
},
{
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
],
2018-05-16 13:46:33 +00:00
"id": 94,
2018-05-10 11:12:13 +00:00
"name": "checkHash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 283,
"src": "1786:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_array$_t_uint8_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
"typeString": "function (bytes32,uint8[] memory,bytes32[] memory,bytes32[] memory) view"
}
},
2018-05-16 13:46:33 +00:00
"id": 108,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "1786:103:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-05-16 13:46:33 +00:00
"id": 109,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "1786:103:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 111,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
2018-05-16 13:46:33 +00:00
"src": "1950:7:2",
2018-05-10 11:12:13 +00:00
"subExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 110,
2018-05-10 11:12:13 +00:00
"name": "nonce",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 63,
"src": "1950:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"id": 112,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "1950:7:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 119,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 117,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
2018-05-16 13:46:33 +00:00
"id": 114,
2018-05-10 11:12:13 +00:00
"name": "gasleft",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2389,
"src": "1975:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
2018-05-16 13:46:33 +00:00
"id": 115,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "1975:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 116,
2018-05-10 11:12:13 +00:00
"name": "PAYMENT_GAS_COSTS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 59,
"src": "1987:17:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"src": "1975:29:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">=",
"rightExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 118,
2018-05-10 11:12:13 +00:00
"name": "safeTxGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 73,
"src": "2008:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"src": "1975:42:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
2018-05-16 13:46:33 +00:00
"id": 113,
2018-05-10 11:12:13 +00:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
2018-05-16 13:46:33 +00:00
2399,
2400
2018-05-10 11:12:13 +00:00
],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2399,
"src": "1967:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
2018-05-16 13:46:33 +00:00
"id": 120,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "1967:51:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-05-16 13:46:33 +00:00
"id": 121,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "1967:51:2"
2018-05-10 11:12:13 +00:00
},
{
"condition": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 129,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "!",
"prefix": true,
2018-05-16 13:46:33 +00:00
"src": "2032:47:2",
2018-05-10 11:12:13 +00:00
"subExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 123,
2018-05-10 11:12:13 +00:00
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 65,
"src": "2041:2:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 124,
2018-05-10 11:12:13 +00:00
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 67,
"src": "2045:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 125,
2018-05-10 11:12:13 +00:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 69,
"src": "2052:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 126,
2018-05-10 11:12:13 +00:00
"name": "operation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 71,
"src": "2058:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 127,
2018-05-10 11:12:13 +00:00
"name": "safeTxGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 73,
"src": "2069:9:2",
2018-05-10 11:12:13 +00:00
"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"
},
{
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2018-05-16 13:46:33 +00:00
"id": 122,
2018-05-10 11:12:13 +00:00
"name": "execute",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 860,
"src": "2033:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bool_$",
2018-05-10 11:12:13 +00:00
"typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)"
}
},
2018-05-16 13:46:33 +00:00
"id": 128,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "2033:46:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
2018-05-16 13:46:33 +00:00
"id": 134,
2018-05-10 11:12:13 +00:00
"nodeType": "IfStatement",
2018-05-16 13:46:33 +00:00
"src": "2028:100:2",
2018-05-10 11:12:13 +00:00
"trueBody": {
2018-05-16 13:46:33 +00:00
"id": 133,
2018-05-10 11:12:13 +00:00
"nodeType": "Block",
2018-05-16 13:46:33 +00:00
"src": "2081:47:2",
2018-05-10 11:12:13 +00:00
"statements": [
{
"eventCall": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
2018-05-16 13:46:33 +00:00
"id": 130,
2018-05-10 11:12:13 +00:00
"name": "ExecutionFailed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 61,
"src": "2100:15:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
"typeString": "function ()"
}
},
2018-05-16 13:46:33 +00:00
"id": 131,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "2100:17:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-05-16 13:46:33 +00:00
"id": 132,
2018-05-10 11:12:13 +00:00
"nodeType": "EmitStatement",
2018-05-16 13:46:33 +00:00
"src": "2095:22:2"
2018-05-10 11:12:13 +00:00
}
]
}
},
{
"assignments": [
2018-05-16 13:46:33 +00:00
136
2018-05-10 11:12:13 +00:00
],
"declarations": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 136,
2018-05-10 11:12:13 +00:00
"name": "gasCosts",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "2137:16:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 135,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "2137:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"id": 144,
2018-05-10 11:12:13 +00:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 141,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 138,
2018-05-10 11:12:13 +00:00
"name": "startGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 90,
"src": "2170:8:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
2018-05-16 13:46:33 +00:00
"id": 139,
2018-05-10 11:12:13 +00:00
"name": "gasleft",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2389,
"src": "2181:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
2018-05-16 13:46:33 +00:00
"id": 140,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "2181:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"src": "2170:20:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 142,
2018-05-10 11:12:13 +00:00
"name": "dataGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 75,
"src": "2192:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2018-05-16 13:46:33 +00:00
"id": 137,
2018-05-10 11:12:13 +00:00
"name": "totalGasCosts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 174,
"src": "2156:13:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
2018-05-16 13:46:33 +00:00
"id": 143,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "2156:44:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
2018-05-16 13:46:33 +00:00
"src": "2137:63:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 152,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 150,
2018-05-10 11:12:13 +00:00
"name": "gasCosts",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 136,
"src": "2419:8:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "*",
"rightExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 151,
2018-05-10 11:12:13 +00:00
"name": "gasPrice",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 77,
"src": "2430:8:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"src": "2419:19:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 145,
2018-05-10 11:12:13 +00:00
"name": "tx",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2408,
"src": "2400:2:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_magic_transaction",
"typeString": "tx"
}
},
2018-05-16 13:46:33 +00:00
"id": 148,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "origin",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2018-05-16 13:46:33 +00:00
"src": "2400:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2018-05-16 13:46:33 +00:00
"id": 149,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "transfer",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
2018-05-16 13:46:33 +00:00
"src": "2400:18:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
2018-05-16 13:46:33 +00:00
"id": 153,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "2400:39:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-05-16 13:46:33 +00:00
"id": 154,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "2400:39:2"
2018-05-10 11:12:13 +00:00
}
]
},
"documentation": "@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 safeTxGas Gas that should be used for the Safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Gas price that should be used for the payment calculation.\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.",
2018-05-16 13:46:33 +00:00
"id": 156,
2018-05-10 11:12:13 +00:00
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
2018-05-16 13:46:33 +00:00
"name": "execPayTransaction",
2018-05-10 11:12:13 +00:00
"nodeType": "FunctionDefinition",
"parameters": {
2018-05-16 13:46:33 +00:00
"id": 87,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 65,
2018-05-10 11:12:13 +00:00
"name": "to",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1480:10:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 64,
2018-05-10 11:12:13 +00:00
"name": "address",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1480:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 67,
2018-05-10 11:12:13 +00:00
"name": "value",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1501:13:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 66,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1501:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 69,
2018-05-10 11:12:13 +00:00
"name": "data",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1525:10:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 68,
2018-05-10 11:12:13 +00:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1525:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 71,
2018-05-10 11:12:13 +00:00
"name": "operation",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1546:24:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
},
"typeName": {
"contractScope": null,
2018-05-16 13:46:33 +00:00
"id": 70,
2018-05-10 11:12:13 +00:00
"name": "Enum.Operation",
"nodeType": "UserDefinedTypeName",
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 5,
"src": "1546:14:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 73,
2018-05-10 11:12:13 +00:00
"name": "safeTxGas",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1581:17:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 72,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1581:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 75,
2018-05-10 11:12:13 +00:00
"name": "dataGas",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1608:15:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 74,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1608:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 77,
2018-05-10 11:12:13 +00:00
"name": "gasPrice",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1633:16:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 76,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1633:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 80,
2018-05-10 11:12:13 +00:00
"name": "v",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1659:9:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr",
"typeString": "uint8[]"
},
"typeName": {
"baseType": {
2018-05-16 13:46:33 +00:00
"id": 78,
2018-05-10 11:12:13 +00:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1659:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
2018-05-16 13:46:33 +00:00
"id": 79,
2018-05-10 11:12:13 +00:00
"length": null,
"nodeType": "ArrayTypeName",
2018-05-16 13:46:33 +00:00
"src": "1659:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr",
"typeString": "uint8[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 83,
2018-05-10 11:12:13 +00:00
"name": "r",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1679:11:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
2018-05-16 13:46:33 +00:00
"id": 81,
2018-05-10 11:12:13 +00:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1679:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2018-05-16 13:46:33 +00:00
"id": 82,
2018-05-10 11:12:13 +00:00
"length": null,
"nodeType": "ArrayTypeName",
2018-05-16 13:46:33 +00:00
"src": "1679:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 86,
2018-05-10 11:12:13 +00:00
"name": "s",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 156,
"src": "1701:11:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
2018-05-16 13:46:33 +00:00
"id": 84,
2018-05-10 11:12:13 +00:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "1701:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2018-05-16 13:46:33 +00:00
"id": 85,
2018-05-10 11:12:13 +00:00
"length": null,
"nodeType": "ArrayTypeName",
2018-05-16 13:46:33 +00:00
"src": "1701:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"src": "1470:248:2"
2018-05-10 11:12:13 +00:00
},
"payable": false,
"returnParameters": {
2018-05-16 13:46:33 +00:00
"id": 88,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [],
2018-05-16 13:46:33 +00:00
"src": "1738:0:2"
2018-05-10 11:12:13 +00:00
},
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "1443:1003:2",
2018-05-10 11:12:13 +00:00
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
2018-05-16 13:46:33 +00:00
"id": 173,
2018-05-10 11:12:13 +00:00
"nodeType": "Block",
2018-05-16 13:46:33 +00:00
"src": "3001:86:2",
2018-05-10 11:12:13 +00:00
"statements": [
{
"expression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 171,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 169,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 167,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 165,
2018-05-10 11:12:13 +00:00
"name": "executionGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 158,
"src": "3018:12:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 166,
2018-05-10 11:12:13 +00:00
"name": "dataGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 160,
"src": "3033:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"src": "3018:22:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 168,
2018-05-10 11:12:13 +00:00
"name": "PAYMENT_GAS_COSTS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 59,
"src": "3043:17:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"src": "3018:42:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 170,
2018-05-10 11:12:13 +00:00
"name": "BASE_TX_GAS_COSTS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 56,
"src": "3063:17:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"src": "3018:62:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"functionReturnParameters": 164,
"id": 172,
2018-05-10 11:12:13 +00:00
"nodeType": "Return",
2018-05-16 13:46:33 +00:00
"src": "3011:69:2"
2018-05-10 11:12:13 +00:00
}
]
},
"documentation": "@dev Calculates the total gas costs for a safe transaction with the gas costs for the execution of the transaction.\n @param executionGas Gas costs for the execution of the safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction.\n @return Total gas costs for the execution (this includes gas costs for the payment to tx.origin, base transaction and payload data).",
2018-05-16 13:46:33 +00:00
"id": 174,
2018-05-10 11:12:13 +00:00
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "totalGasCosts",
"nodeType": "FunctionDefinition",
"parameters": {
2018-05-16 13:46:33 +00:00
"id": 161,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 158,
2018-05-10 11:12:13 +00:00
"name": "executionGas",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 174,
"src": "2901:20:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 157,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "2901:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 160,
2018-05-10 11:12:13 +00:00
"name": "dataGas",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 174,
"src": "2923:15:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 159,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "2923:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"src": "2900:39:2"
2018-05-10 11:12:13 +00:00
},
"payable": false,
"returnParameters": {
2018-05-16 13:46:33 +00:00
"id": 164,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 163,
2018-05-10 11:12:13 +00:00
"name": "",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 174,
"src": "2987:7:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 162,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "2987:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"src": "2986:9:2"
2018-05-10 11:12:13 +00:00
},
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "2878:209:2",
2018-05-10 11:12:13 +00:00
"stateMutability": "pure",
"superFunction": null,
"visibility": "public"
},
{
"body": {
2018-05-16 13:46:33 +00:00
"id": 210,
2018-05-10 11:12:13 +00:00
"nodeType": "Block",
2018-05-16 13:46:33 +00:00
"src": "3938:147:2",
2018-05-10 11:12:13 +00:00
"statements": [
{
"assignments": [
2018-05-16 13:46:33 +00:00
190
2018-05-10 11:12:13 +00:00
],
"declarations": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 190,
2018-05-10 11:12:13 +00:00
"name": "startGas",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 211,
"src": "3948:16:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 189,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "3948:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"id": 193,
2018-05-10 11:12:13 +00:00
"initialValue": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
2018-05-16 13:46:33 +00:00
"id": 191,
2018-05-10 11:12:13 +00:00
"name": "gasleft",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2389,
"src": "3967:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
2018-05-16 13:46:33 +00:00
"id": 192,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "3967:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
2018-05-16 13:46:33 +00:00
"src": "3948:28:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 196,
2018-05-10 11:12:13 +00:00
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 176,
"src": "4002:2:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 197,
2018-05-10 11:12:13 +00:00
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 178,
"src": "4006:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 198,
2018-05-10 11:12:13 +00:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 180,
"src": "4013:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 199,
2018-05-10 11:12:13 +00:00
"name": "operation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 182,
"src": "4019:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
}
},
{
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
2018-05-16 13:46:33 +00:00
"id": 200,
2018-05-10 11:12:13 +00:00
"name": "gasleft",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2389,
"src": "4030:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
2018-05-16 13:46:33 +00:00
"id": 201,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "4030:9:2",
2018-05-10 11:12:13 +00:00
"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"
},
{
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2018-05-16 13:46:33 +00:00
"id": 195,
2018-05-10 11:12:13 +00:00
"name": "execute",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 860,
"src": "3994:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bool_$",
2018-05-10 11:12:13 +00:00
"typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)"
}
},
2018-05-16 13:46:33 +00:00
"id": 202,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "3994:46:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
2018-05-16 13:46:33 +00:00
"id": 194,
2018-05-10 11:12:13 +00:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
2018-05-16 13:46:33 +00:00
2399,
2400
2018-05-10 11:12:13 +00:00
],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2399,
"src": "3986:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
2018-05-16 13:46:33 +00:00
"id": 203,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "3986:55:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-05-16 13:46:33 +00:00
"id": 204,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "3986:55:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 208,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 205,
2018-05-10 11:12:13 +00:00
"name": "startGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 190,
"src": "4058:8:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
2018-05-16 13:46:33 +00:00
"id": 206,
2018-05-10 11:12:13 +00:00
"name": "gasleft",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2389,
"src": "4069:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
2018-05-16 13:46:33 +00:00
"id": 207,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "4069:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"src": "4058:20:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"functionReturnParameters": 188,
"id": 209,
2018-05-10 11:12:13 +00:00
"nodeType": "Return",
2018-05-16 13:46:33 +00:00
"src": "4051:27:2"
2018-05-10 11:12:13 +00:00
}
]
},
2018-05-16 13:46:33 +00:00
"documentation": "@dev Allows to estimate a Safe transaction. \n This method can only be used by the safe itself in a transaction. When estimating set `from` to the address of the safe.\n Since the `estimateGas` function includes refunds, call this method to get an estimated of the costs that are deducted from the safe with `execPayTransaction`\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 @return Estimate without refunds and overhead fees (base transaction and payload data gas costs).",
"id": 211,
2018-05-10 11:12:13 +00:00
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
2018-05-16 13:46:33 +00:00
"id": 185,
2018-05-10 11:12:13 +00:00
"modifierName": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 184,
2018-05-10 11:12:13 +00:00
"name": "authorized",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 1358,
"src": "3897:10:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
2018-05-16 13:46:33 +00:00
"src": "3897:10:2"
2018-05-10 11:12:13 +00:00
}
],
2018-05-16 13:46:33 +00:00
"name": "requiredTxGas",
2018-05-10 11:12:13 +00:00
"nodeType": "FunctionDefinition",
"parameters": {
2018-05-16 13:46:33 +00:00
"id": 183,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 176,
2018-05-10 11:12:13 +00:00
"name": "to",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 211,
"src": "3809:10:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 175,
2018-05-10 11:12:13 +00:00
"name": "address",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "3809:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 178,
2018-05-10 11:12:13 +00:00
"name": "value",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 211,
"src": "3821:13:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 177,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "3821:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 180,
2018-05-10 11:12:13 +00:00
"name": "data",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 211,
"src": "3836:10:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 179,
2018-05-10 11:12:13 +00:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "3836:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 182,
2018-05-10 11:12:13 +00:00
"name": "operation",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 211,
"src": "3848:24:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
},
"typeName": {
"contractScope": null,
2018-05-16 13:46:33 +00:00
"id": 181,
2018-05-10 11:12:13 +00:00
"name": "Enum.Operation",
"nodeType": "UserDefinedTypeName",
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 5,
"src": "3848:14:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"src": "3808:65:2"
2018-05-10 11:12:13 +00:00
},
"payable": false,
"returnParameters": {
2018-05-16 13:46:33 +00:00
"id": 188,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 187,
2018-05-10 11:12:13 +00:00
"name": "",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 211,
"src": "3925:7:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 186,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "3925:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"src": "3924:9:2"
2018-05-10 11:12:13 +00:00
},
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "3786:299:2",
2018-05-10 11:12:13 +00:00
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
2018-05-16 13:46:33 +00:00
"id": 282,
2018-05-10 11:12:13 +00:00
"nodeType": "Block",
2018-05-16 13:46:33 +00:00
"src": "4195:437:2",
2018-05-10 11:12:13 +00:00
"statements": [
{
"assignments": [
2018-05-16 13:46:33 +00:00
226
2018-05-10 11:12:13 +00:00
],
"declarations": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 226,
2018-05-10 11:12:13 +00:00
"name": "lastOwner",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 283,
"src": "4257:17:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 225,
2018-05-10 11:12:13 +00:00
"name": "address",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "4257:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"id": 230,
2018-05-10 11:12:13 +00:00
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
2018-05-16 13:46:33 +00:00
"id": 228,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2018-05-16 13:46:33 +00:00
"src": "4285:1:2",
2018-05-10 11:12:13 +00:00
"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"
}
],
2018-05-16 13:46:33 +00:00
"id": 227,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2018-05-16 13:46:33 +00:00
"src": "4277:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
2018-05-16 13:46:33 +00:00
"id": 229,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "4277:10:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
2018-05-16 13:46:33 +00:00
"src": "4257:30:2"
2018-05-10 11:12:13 +00:00
},
{
"assignments": [],
"declarations": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 232,
2018-05-10 11:12:13 +00:00
"name": "currentOwner",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 283,
"src": "4297:20:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 231,
2018-05-10 11:12:13 +00:00
"name": "address",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "4297:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"id": 233,
2018-05-10 11:12:13 +00:00
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
2018-05-16 13:46:33 +00:00
"src": "4297:20:2"
2018-05-10 11:12:13 +00:00
},
{
"assignments": [],
"declarations": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 235,
2018-05-10 11:12:13 +00:00
"name": "i",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 283,
"src": "4327:9:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 234,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "4327:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"id": 236,
2018-05-10 11:12:13 +00:00
"initialValue": null,
"nodeType": "VariableDeclarationStatement",
2018-05-16 13:46:33 +00:00
"src": "4327:9:2"
2018-05-10 11:12:13 +00:00
},
{
"body": {
2018-05-16 13:46:33 +00:00
"id": 280,
2018-05-10 11:12:13 +00:00
"nodeType": "Block",
2018-05-16 13:46:33 +00:00
"src": "4420:206:2",
2018-05-10 11:12:13 +00:00
"statements": [
{
"expression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 260,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 247,
2018-05-10 11:12:13 +00:00
"name": "currentOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 232,
"src": "4434:12:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 249,
2018-05-10 11:12:13 +00:00
"name": "hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 213,
"src": "4459:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 250,
2018-05-10 11:12:13 +00:00
"name": "v",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 216,
"src": "4465:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr",
"typeString": "uint8[] memory"
}
},
2018-05-16 13:46:33 +00:00
"id": 252,
2018-05-10 11:12:13 +00:00
"indexExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 251,
2018-05-10 11:12:13 +00:00
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 235,
"src": "4467:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
2018-05-16 13:46:33 +00:00
"src": "4465:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 253,
2018-05-10 11:12:13 +00:00
"name": "r",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 219,
"src": "4471:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
2018-05-16 13:46:33 +00:00
"id": 255,
2018-05-10 11:12:13 +00:00
"indexExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 254,
2018-05-10 11:12:13 +00:00
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 235,
"src": "4473:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
2018-05-16 13:46:33 +00:00
"src": "4471:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 256,
2018-05-10 11:12:13 +00:00
"name": "s",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 222,
"src": "4477:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[] memory"
}
},
2018-05-16 13:46:33 +00:00
"id": 258,
2018-05-10 11:12:13 +00:00
"indexExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 257,
2018-05-10 11:12:13 +00:00
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 235,
"src": "4479:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
2018-05-16 13:46:33 +00:00
"src": "4477:4:2",
2018-05-10 11:12:13 +00:00
"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"
}
],
2018-05-16 13:46:33 +00:00
"id": 248,
2018-05-10 11:12:13 +00:00
"name": "ecrecover",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2388,
"src": "4449:9:2",
2018-05-10 11:12:13 +00:00
"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)"
}
},
2018-05-16 13:46:33 +00:00
"id": 259,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "4449:33:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2018-05-16 13:46:33 +00:00
"src": "4434:48:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2018-05-16 13:46:33 +00:00
"id": 261,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "4434:48:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
2018-05-10 11:12:13 +00:00
},
2018-05-16 13:46:33 +00:00
"id": 267,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
2018-05-10 11:12:13 +00:00
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"baseExpression": {
"argumentTypes": null,
"id": 263,
"name": "owners",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 985,
"src": "4504:6:2",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_address_$",
"typeString": "mapping(address => address)"
}
},
"id": 265,
"indexExpression": {
"argumentTypes": null,
"id": 264,
"name": "currentOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 232,
"src": "4511:12:2",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4504:20:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2018-05-16 13:46:33 +00:00
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 266,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4528:1:2",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "4504:25:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
2018-05-16 13:46:33 +00:00
"id": 262,
2018-05-10 11:12:13 +00:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
2018-05-16 13:46:33 +00:00
2399,
2400
2018-05-10 11:12:13 +00:00
],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2399,
"src": "4496:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
2018-05-16 13:46:33 +00:00
"id": 268,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "4496:34:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-05-16 13:46:33 +00:00
"id": 269,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "4496:34:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
2018-05-16 13:46:33 +00:00
"id": 273,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 271,
2018-05-10 11:12:13 +00:00
"name": "currentOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 232,
"src": "4552:12:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 272,
2018-05-10 11:12:13 +00:00
"name": "lastOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 226,
"src": "4567:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2018-05-16 13:46:33 +00:00
"src": "4552:24:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
2018-05-16 13:46:33 +00:00
"id": 270,
2018-05-10 11:12:13 +00:00
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
2018-05-16 13:46:33 +00:00
2399,
2400
2018-05-10 11:12:13 +00:00
],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2399,
"src": "4544:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
2018-05-16 13:46:33 +00:00
"id": 274,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "4544:33:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
2018-05-16 13:46:33 +00:00
"id": 275,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "4544:33:2"
2018-05-10 11:12:13 +00:00
},
{
"expression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 278,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 276,
2018-05-10 11:12:13 +00:00
"name": "lastOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 226,
"src": "4591:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 277,
2018-05-10 11:12:13 +00:00
"name": "currentOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 232,
"src": "4603:12:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2018-05-16 13:46:33 +00:00
"src": "4591:24:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
2018-05-16 13:46:33 +00:00
"id": 279,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "4591:24:2"
2018-05-10 11:12:13 +00:00
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
2018-05-16 13:46:33 +00:00
"id": 243,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 241,
2018-05-10 11:12:13 +00:00
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 235,
"src": "4400:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 242,
2018-05-10 11:12:13 +00:00
"name": "threshold",
"nodeType": "Identifier",
2018-05-16 13:46:33 +00:00
"overloadedDeclarations": [],
"referencedDeclaration": 989,
"src": "4404:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
2018-05-16 13:46:33 +00:00
"src": "4400:13:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
2018-05-16 13:46:33 +00:00
"id": 281,
2018-05-10 11:12:13 +00:00
"initializationExpression": {
"expression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 239,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 237,
2018-05-10 11:12:13 +00:00
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 235,
"src": "4393:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "30",
2018-05-16 13:46:33 +00:00
"id": 238,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2018-05-16 13:46:33 +00:00
"src": "4397:1:2",
2018-05-10 11:12:13 +00:00
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
2018-05-16 13:46:33 +00:00
"src": "4393:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"id": 240,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "4393:5:2"
2018-05-10 11:12:13 +00:00
},
"loopExpression": {
"expression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 245,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
2018-05-16 13:46:33 +00:00
"src": "4415:3:2",
2018-05-10 11:12:13 +00:00
"subExpression": {
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 244,
2018-05-10 11:12:13 +00:00
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 235,
"src": "4415:1:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
2018-05-16 13:46:33 +00:00
"id": 246,
2018-05-10 11:12:13 +00:00
"nodeType": "ExpressionStatement",
2018-05-16 13:46:33 +00:00
"src": "4415:3:2"
2018-05-10 11:12:13 +00:00
},
"nodeType": "ForStatement",
2018-05-16 13:46:33 +00:00
"src": "4388:238:2"
2018-05-10 11:12:13 +00:00
}
]
},
"documentation": null,
2018-05-16 13:46:33 +00:00
"id": 283,
2018-05-10 11:12:13 +00:00
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "checkHash",
"nodeType": "FunctionDefinition",
"parameters": {
2018-05-16 13:46:33 +00:00
"id": 223,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 213,
2018-05-10 11:12:13 +00:00
"name": "hash",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 283,
"src": "4110:12:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 212,
2018-05-10 11:12:13 +00:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "4110:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 216,
2018-05-10 11:12:13 +00:00
"name": "v",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 283,
"src": "4124:9:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr",
"typeString": "uint8[]"
},
"typeName": {
"baseType": {
2018-05-16 13:46:33 +00:00
"id": 214,
2018-05-10 11:12:13 +00:00
"name": "uint8",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "4124:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
2018-05-16 13:46:33 +00:00
"id": 215,
2018-05-10 11:12:13 +00:00
"length": null,
"nodeType": "ArrayTypeName",
2018-05-16 13:46:33 +00:00
"src": "4124:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr",
"typeString": "uint8[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 219,
2018-05-10 11:12:13 +00:00
"name": "r",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 283,
"src": "4135:11:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
2018-05-16 13:46:33 +00:00
"id": 217,
2018-05-10 11:12:13 +00:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "4135:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2018-05-16 13:46:33 +00:00
"id": 218,
2018-05-10 11:12:13 +00:00
"length": null,
"nodeType": "ArrayTypeName",
2018-05-16 13:46:33 +00:00
"src": "4135:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 222,
2018-05-10 11:12:13 +00:00
"name": "s",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 283,
"src": "4148:11:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
"typeString": "bytes32[]"
},
"typeName": {
"baseType": {
2018-05-16 13:46:33 +00:00
"id": 220,
2018-05-10 11:12:13 +00:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "4148:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2018-05-16 13:46:33 +00:00
"id": 221,
2018-05-10 11:12:13 +00:00
"length": null,
"nodeType": "ArrayTypeName",
2018-05-16 13:46:33 +00:00
"src": "4148:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
"typeString": "bytes32[]"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"src": "4109:51:2"
2018-05-10 11:12:13 +00:00
},
"payable": false,
"returnParameters": {
2018-05-16 13:46:33 +00:00
"id": 224,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [],
2018-05-16 13:46:33 +00:00
"src": "4195:0:2"
2018-05-10 11:12:13 +00:00
},
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "4091:541:2",
2018-05-10 11:12:13 +00:00
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
2018-05-16 13:46:33 +00:00
"id": 322,
2018-05-10 11:12:13 +00:00
"nodeType": "Block",
2018-05-16 13:46:33 +00:00
"src": "5448:126:2",
2018-05-10 11:12:13 +00:00
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30783139",
2018-05-16 13:46:33 +00:00
"id": 306,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2018-05-16 13:46:33 +00:00
"src": "5480:4:2",
2018-05-10 11:12:13 +00:00
"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"
}
],
2018-05-16 13:46:33 +00:00
"id": 305,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2018-05-16 13:46:33 +00:00
"src": "5475:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes1_$",
"typeString": "type(bytes1)"
},
"typeName": "byte"
},
2018-05-16 13:46:33 +00:00
"id": 307,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "5475:10:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
2018-05-16 13:46:33 +00:00
"id": 309,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
2018-05-16 13:46:33 +00:00
"src": "5492:1:2",
2018-05-10 11:12:13 +00:00
"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"
}
],
2018-05-16 13:46:33 +00:00
"id": 308,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
2018-05-16 13:46:33 +00:00
"src": "5487:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes1_$",
"typeString": "type(bytes1)"
},
"typeName": "byte"
},
2018-05-16 13:46:33 +00:00
"id": 310,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "5487:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 311,
2018-05-10 11:12:13 +00:00
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2423,
"src": "5496:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$324",
2018-05-10 11:12:13 +00:00
"typeString": "contract GnosisSafePersonalEdition"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 312,
2018-05-10 11:12:13 +00:00
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 285,
"src": "5502:2:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 313,
2018-05-10 11:12:13 +00:00
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 287,
"src": "5506:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 314,
2018-05-10 11:12:13 +00:00
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 289,
"src": "5513:4:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 315,
2018-05-10 11:12:13 +00:00
"name": "operation",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 291,
"src": "5519:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 316,
2018-05-10 11:12:13 +00:00
"name": "safeTxGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 293,
"src": "5530:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 317,
2018-05-10 11:12:13 +00:00
"name": "dataGas",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 295,
"src": "5541:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 318,
2018-05-10 11:12:13 +00:00
"name": "gasPrice",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 297,
"src": "5550:8:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
2018-05-16 13:46:33 +00:00
"id": 319,
2018-05-10 11:12:13 +00:00
"name": "_nonce",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 299,
"src": "5560:6:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
},
{
"typeIdentifier": "t_bytes1",
"typeString": "bytes1"
},
{
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$324",
2018-05-10 11:12:13 +00:00
"typeString": "contract GnosisSafePersonalEdition"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
2018-05-16 13:46:33 +00:00
"id": 304,
2018-05-10 11:12:13 +00:00
"name": "keccak256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 2390,
"src": "5465:9:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$",
"typeString": "function () pure returns (bytes32)"
}
},
2018-05-16 13:46:33 +00:00
"id": 320,
2018-05-10 11:12:13 +00:00
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
2018-05-16 13:46:33 +00:00
"src": "5465:102:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
2018-05-16 13:46:33 +00:00
"functionReturnParameters": 303,
"id": 321,
2018-05-10 11:12:13 +00:00
"nodeType": "Return",
2018-05-16 13:46:33 +00:00
"src": "5458:109:2"
2018-05-10 11:12:13 +00:00
}
]
},
"documentation": "@dev Returns 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 safeTxGas Fas that should be used for the safe transaction.\n @param dataGas Gas costs for data used to trigger the safe transaction.\n @param gasPrice Maximum gas price that should be used for this transaction.\n @param _nonce Transaction nonce.\n @return Transaction hash.",
2018-05-16 13:46:33 +00:00
"id": 323,
2018-05-10 11:12:13 +00:00
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "getTransactionHash",
"nodeType": "FunctionDefinition",
"parameters": {
2018-05-16 13:46:33 +00:00
"id": 300,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 285,
2018-05-10 11:12:13 +00:00
"name": "to",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5187:10:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 284,
2018-05-10 11:12:13 +00:00
"name": "address",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "5187:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 287,
2018-05-10 11:12:13 +00:00
"name": "value",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5208:13:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 286,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "5208:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 289,
2018-05-10 11:12:13 +00:00
"name": "data",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5232:10:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 288,
2018-05-10 11:12:13 +00:00
"name": "bytes",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "5232:5:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 291,
2018-05-10 11:12:13 +00:00
"name": "operation",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5253:24:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
},
"typeName": {
"contractScope": null,
2018-05-16 13:46:33 +00:00
"id": 290,
2018-05-10 11:12:13 +00:00
"name": "Enum.Operation",
"nodeType": "UserDefinedTypeName",
2018-05-16 13:46:33 +00:00
"referencedDeclaration": 5,
"src": "5253:14:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
2018-05-16 13:46:33 +00:00
"typeIdentifier": "t_enum$_Operation_$5",
2018-05-10 11:12:13 +00:00
"typeString": "enum Enum.Operation"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 293,
2018-05-10 11:12:13 +00:00
"name": "safeTxGas",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5288:17:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 292,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "5288:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 295,
2018-05-10 11:12:13 +00:00
"name": "dataGas",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5316:15:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 294,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "5316:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 297,
2018-05-10 11:12:13 +00:00
"name": "gasPrice",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5342:16:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 296,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "5342:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 299,
2018-05-10 11:12:13 +00:00
"name": "_nonce",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5369:14:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 298,
2018-05-10 11:12:13 +00:00
"name": "uint256",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "5369:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"src": "5177:212:2"
2018-05-10 11:12:13 +00:00
},
"payable": false,
"returnParameters": {
2018-05-16 13:46:33 +00:00
"id": 303,
2018-05-10 11:12:13 +00:00
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
2018-05-16 13:46:33 +00:00
"id": 302,
2018-05-10 11:12:13 +00:00
"name": "",
"nodeType": "VariableDeclaration",
2018-05-16 13:46:33 +00:00
"scope": 323,
"src": "5435:7:2",
2018-05-10 11:12:13 +00:00
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
"typeName": {
2018-05-16 13:46:33 +00:00
"id": 301,
2018-05-10 11:12:13 +00:00
"name": "bytes32",
"nodeType": "ElementaryTypeName",
2018-05-16 13:46:33 +00:00
"src": "5435:7:2",
2018-05-10 11:12:13 +00:00
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
"value": null,
"visibility": "internal"
}
],
2018-05-16 13:46:33 +00:00
"src": "5434:9:2"
2018-05-10 11:12:13 +00:00
},
2018-05-16 13:46:33 +00:00
"scope": 324,
"src": "5150:424:2",
2018-05-10 11:12:13 +00:00
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
}
],
2018-05-16 13:46:33 +00:00
"scope": 325,
"src": "314:5262:2"
2018-05-10 11:12:13 +00:00
}
],
2018-05-16 13:46:33 +00:00
"src": "0:5577:2"
2018-05-10 11:12:13 +00:00
},
"compiler": {
"name": "solc",
"version": "0.4.23+commit.124ca40d.Emscripten.clang"
},
"networks": {
"4": {
"events": {},
"links": {},
2018-05-16 13:46:33 +00:00
"address": "0xfa2be236995d09b0ee494b9e40637d661ff40494",
"transactionHash": "0x1db063ae298dedb887690b77fc973264fd51dfbee9fdb699c430821998894113"
2018-05-10 11:12:13 +00:00
},
"1525950336085": {
"events": {},
"links": {},
"address": "0x1f8829f66b8ac7a6893109dd298007f5dd3bcadf",
"transactionHash": "0x9a582bc25c7705ede926f13bef0ba8fa76176d0ec80dc0871e1b28d87382f545"
2018-05-14 07:48:41 +00:00
},
"1526283540628": {
"events": {},
"links": {},
"address": "0xad5d0371132b0959508b44c6221e6bc4de8df987",
"transactionHash": "0x9a582bc25c7705ede926f13bef0ba8fa76176d0ec80dc0871e1b28d87382f545"
2018-05-16 13:46:33 +00:00
},
"1526478212260": {
"events": {},
"links": {},
"address": "0x6cd3878c8fce094d881e37ed48a6eb90bcea5ef7",
"transactionHash": "0xd404a4c4c3ff550c031b238e6df539cbbd9d5727574d8446d0c40f2abf4638b1"
},
"1526973574996": {
"events": {},
"links": {},
"address": "0x38a0e040615367af9cd0626ef96441785f82f5c8",
"transactionHash": "0xd404a4c4c3ff550c031b238e6df539cbbd9d5727574d8446d0c40f2abf4638b1"
2018-05-10 11:12:13 +00:00
}
},
"schemaVersion": "2.0.0",
"updatedAt": "2018-05-22T07:20:22.972Z"
2018-05-10 11:12:13 +00:00
}