From bd00e4a5174d835f4fb83c1ee385888820236afe Mon Sep 17 00:00:00 2001 From: apanizo Date: Sun, 27 May 2018 13:24:10 +0200 Subject: [PATCH] WA-238 update safe-contracts --- .../build/contracts/CreateAndAddModule.json | 1221 --- .../build/contracts/CreateAndAddModules.json | 600 +- .../build/contracts/DailyLimitModule.json | 6650 ++++++---------- .../DailyLimitModuleWithSignature.json | 2573 ------ .../contracts/DelegateConstructorProxy.json | 46 +- .../build/contracts/ERC20Token.json | 1799 +++++ safe-contracts/build/contracts/Enum.json | 86 +- .../build/contracts/GnosisSafe.json | 402 +- .../contracts/GnosisSafePersonalEdition.json | 6024 ++++++++------ .../GnosisSafeStateChannelEdition.json | 5469 ------------- .../contracts/GnosisSafeTeamEdition.json | 6968 ++++++++--------- .../build/contracts/MasterCopy.json | 302 +- .../build/contracts/Migrations.json | 634 +- safe-contracts/build/contracts/Module.json | 498 +- .../build/contracts/ModuleManager.json | 3770 ++++----- safe-contracts/build/contracts/MultiSend.json | 136 +- .../build/contracts/MultiSendStruct.json | 1688 ---- .../build/contracts/OwnerManager.json | 3766 ++++----- .../build/contracts/PayingProxy.json | 1234 ++- safe-contracts/build/contracts/Proxy.json | 434 +- .../build/contracts/ProxyFactory.json | 484 +- .../build/contracts/SelfAuthorized.json | 186 +- .../build/contracts/SocialRecoveryModule.json | 3288 ++++---- .../build/contracts/StateChannelModule.json | 2864 +++---- .../build/contracts/WhitelistModule.json | 1636 ++-- 25 files changed, 22090 insertions(+), 30668 deletions(-) delete mode 100644 safe-contracts/build/contracts/CreateAndAddModule.json delete mode 100644 safe-contracts/build/contracts/DailyLimitModuleWithSignature.json create mode 100644 safe-contracts/build/contracts/ERC20Token.json delete mode 100644 safe-contracts/build/contracts/GnosisSafeStateChannelEdition.json delete mode 100644 safe-contracts/build/contracts/MultiSendStruct.json diff --git a/safe-contracts/build/contracts/CreateAndAddModule.json b/safe-contracts/build/contracts/CreateAndAddModule.json deleted file mode 100644 index f6c838d6..00000000 --- a/safe-contracts/build/contracts/CreateAndAddModule.json +++ /dev/null @@ -1,1221 +0,0 @@ -{ - "contractName": "CreateAndAddModule", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "module", - "type": "address" - } - ], - "name": "addModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "proxyFactory", - "type": "address" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "createAndAddModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50610253806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631ed86f1914610051578063250ad41214610094575b600080fd5b34801561005d57600080fd5b50610092600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061011d565b005b3480156100a057600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610122565b005b600080fd5b600061012e83836101e8565b90503073ffffffffffffffffffffffffffffffffffffffff16631ed86f19826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156101cb57600080fd5b505af11580156101df573d6000803e3d6000fd5b50505050505050565b60006040516000602082855160208701885af4141561020657600080fd5b73ffffffffffffffffffffffffffffffffffffffff815116915050929150505600a165627a7a72305820a69aa3f8b7eccb408d63a4c5990d1f9082b38369bf3c801ed918bfa3abd34d320029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680631ed86f1914610051578063250ad41214610094575b600080fd5b34801561005d57600080fd5b50610092600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061011d565b005b3480156100a057600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610122565b005b600080fd5b600061012e83836101e8565b90503073ffffffffffffffffffffffffffffffffffffffff16631ed86f19826040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b1580156101cb57600080fd5b505af11580156101df573d6000803e3d6000fd5b50505050505050565b60006040516000602082855160208701885af4141561020657600080fd5b73ffffffffffffffffffffffffffffffffffffffff815116915050929150505600a165627a7a72305820a69aa3f8b7eccb408d63a4c5990d1f9082b38369bf3c801ed918bfa3abd34d320029", - "sourceMap": "190:1054:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;190:1054:15;;;;;;;", - "deployedSourceMap": "190:1054:15:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;349:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;349:78:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;611:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;611:178:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;349:78;412:8;;;611:178;702:13;718:32;731:12;745:4;718:12;:32::i;:::-;702:48;;760:4;:14;;;775:6;760:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;760:22:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;760:22:15;;;;611:178;;;:::o;795:447::-;885:13;1021:4;1015:11;1122:1;1115:4;1107:6;1100:4;1094:11;1087:4;1081;1077:15;1063:12;1058:3;1045:75;1042:82;1039:2;;;1137:1;1134;1127:12;1039:2;1183:42;1174:6;1168:13;1164:62;1154:72;;987:249;;;;;:::o", - "source": "pragma solidity 0.4.23;\nimport \"../Module.sol\";\n\n\n/// @title Create and Add Module - Allows to create and add a new module in one transaction.\n/// @author Stefan George - \ncontract CreateAndAddModule {\n\n /// @dev Function required to compile contract. Gnosis Safe function is called instead.\n /// @param module Not used.\n function addModule(Module module)\n public\n {\n revert();\n }\n\n /// @dev Allows to create and add a new module in one transaction.\n /// @param proxyFactory Module proxy factory contract.\n /// @param data Module constructor payload.\n function createAndAddModule(address proxyFactory, bytes data)\n public\n {\n Module module = createModule(proxyFactory, data);\n this.addModule(module);\n }\n\n function createModule(address proxyFactory, bytes data)\n internal\n returns (Module module)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let output := mload(0x40)\n if eq(delegatecall(gas, proxyFactory, add(data, 0x20), mload(data), output, 0x20), 0) { revert(0, 0) }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n }\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModule.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModule.sol", - "exportedSymbols": { - "CreateAndAddModule": [ - 1604 - ] - }, - "id": 1605, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1561, - "literals": [ - "solidity", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:23:15" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", - "file": "../Module.sol", - "id": 1562, - "nodeType": "ImportDirective", - "scope": 1605, - "sourceUnit": 878, - "src": "24:23:15", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Create and Add Module - Allows to create and add a new module in one transaction.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 1604, - "linearizedBaseContracts": [ - 1604 - ], - "name": "CreateAndAddModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1570, - "nodeType": "Block", - "src": "402:25:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1567, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2470, - 2471 - ], - "referencedDeclaration": 2470, - "src": "412:6:15", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "412:8:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1569, - "nodeType": "ExpressionStatement", - "src": "412:8:15" - } - ] - }, - "documentation": "@dev Function required to compile contract. Gnosis Safe function is called instead.\n @param module Not used.", - "id": 1571, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1565, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1564, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1571, - "src": "368:13:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1563, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 877, - "src": "368:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "367:15:15" - }, - "payable": false, - "returnParameters": { - "id": 1566, - "nodeType": "ParameterList", - "parameters": [], - "src": "402:0:15" - }, - "scope": 1604, - "src": "349:78:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1591, - "nodeType": "Block", - "src": "692:97:15", - "statements": [ - { - "assignments": [ - 1579 - ], - "declarations": [ - { - "constant": false, - "id": 1579, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1592, - "src": "702:13:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1578, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 877, - "src": "702:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1584, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1581, - "name": "proxyFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1573, - "src": "731:12:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1582, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "745:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1580, - "name": "createModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1603, - "src": "718:12:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_contract$_Module_$877_$", - "typeString": "function (address,bytes memory) returns (contract Module)" - } - }, - "id": 1583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "718:32:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "702:48:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1588, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1579, - "src": "775:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - } - ], - "expression": { - "argumentTypes": null, - "id": 1585, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2508, - "src": "760:4:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CreateAndAddModule_$1604", - "typeString": "contract CreateAndAddModule" - } - }, - "id": 1587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1571, - "src": "760:14:15", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$877_$returns$__$", - "typeString": "function (contract Module) external" - } - }, - "id": 1589, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "760:22:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1590, - "nodeType": "ExpressionStatement", - "src": "760:22:15" - } - ] - }, - "documentation": "@dev Allows to create and add a new module in one transaction.\n @param proxyFactory Module proxy factory contract.\n @param data Module constructor payload.", - "id": 1592, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createAndAddModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1576, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1573, - "name": "proxyFactory", - "nodeType": "VariableDeclaration", - "scope": 1592, - "src": "639:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1572, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "639:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1575, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1592, - "src": "661:10:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1574, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "661:5:15", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "638:34:15" - }, - "payable": false, - "returnParameters": { - "id": 1577, - "nodeType": "ParameterList", - "parameters": [], - "src": "692:0:15" - }, - "scope": 1604, - "src": "611:178:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1602, - "nodeType": "Block", - "src": "904:338:15", - "statements": [ - { - "externalReferences": [ - { - "module": { - "declaration": 1599, - "isOffset": false, - "isSlot": false, - "src": "1154:6:15", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1596, - "isOffset": false, - "isSlot": false, - "src": "1100:4:15", - "valueSize": 1 - } - }, - { - "proxyFactory": { - "declaration": 1594, - "isOffset": false, - "isSlot": false, - "src": "1063:12:15", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1596, - "isOffset": false, - "isSlot": false, - "src": "1081:4:15", - "valueSize": 1 - } - } - ], - "id": 1601, - "nodeType": "InlineAssembly", - "operations": "{\n let output := mload(0x40)\n if eq(delegatecall(gas(), proxyFactory, add(data, 0x20), mload(data), output, 0x20), 0)\n {\n revert(0, 0)\n }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n}", - "src": "978:264:15" - } - ] - }, - "documentation": null, - "id": 1603, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1597, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1594, - "name": "proxyFactory", - "nodeType": "VariableDeclaration", - "scope": 1603, - "src": "817:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1593, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "817:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1596, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1603, - "src": "839:10:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1595, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "839:5:15", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "816:34:15" - }, - "payable": false, - "returnParameters": { - "id": 1600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1599, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1603, - "src": "885:13:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1598, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 877, - "src": "885:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "884:15:15" - }, - "scope": 1604, - "src": "795:447:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1605, - "src": "190:1054:15" - } - ], - "src": "0:1245:15" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModule.sol", - "exportedSymbols": { - "CreateAndAddModule": [ - 1604 - ] - }, - "id": 1605, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1561, - "literals": [ - "solidity", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:23:15" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", - "file": "../Module.sol", - "id": 1562, - "nodeType": "ImportDirective", - "scope": 1605, - "sourceUnit": 878, - "src": "24:23:15", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Create and Add Module - Allows to create and add a new module in one transaction.\n @author Stefan George - ", - "fullyImplemented": true, - "id": 1604, - "linearizedBaseContracts": [ - 1604 - ], - "name": "CreateAndAddModule", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1570, - "nodeType": "Block", - "src": "402:25:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1567, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2470, - 2471 - ], - "referencedDeclaration": 2470, - "src": "412:6:15", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 1568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "412:8:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1569, - "nodeType": "ExpressionStatement", - "src": "412:8:15" - } - ] - }, - "documentation": "@dev Function required to compile contract. Gnosis Safe function is called instead.\n @param module Not used.", - "id": 1571, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "addModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1565, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1564, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1571, - "src": "368:13:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1563, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 877, - "src": "368:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "367:15:15" - }, - "payable": false, - "returnParameters": { - "id": 1566, - "nodeType": "ParameterList", - "parameters": [], - "src": "402:0:15" - }, - "scope": 1604, - "src": "349:78:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1591, - "nodeType": "Block", - "src": "692:97:15", - "statements": [ - { - "assignments": [ - 1579 - ], - "declarations": [ - { - "constant": false, - "id": 1579, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1592, - "src": "702:13:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1578, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 877, - "src": "702:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1584, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1581, - "name": "proxyFactory", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1573, - "src": "731:12:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1582, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1575, - "src": "745:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1580, - "name": "createModule", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1603, - "src": "718:12:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$_t_contract$_Module_$877_$", - "typeString": "function (address,bytes memory) returns (contract Module)" - } - }, - "id": 1583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "718:32:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "702:48:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1588, - "name": "module", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1579, - "src": "775:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - } - ], - "expression": { - "argumentTypes": null, - "id": 1585, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2508, - "src": "760:4:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CreateAndAddModule_$1604", - "typeString": "contract CreateAndAddModule" - } - }, - "id": 1587, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 1571, - "src": "760:14:15", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$877_$returns$__$", - "typeString": "function (contract Module) external" - } - }, - "id": 1589, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "760:22:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1590, - "nodeType": "ExpressionStatement", - "src": "760:22:15" - } - ] - }, - "documentation": "@dev Allows to create and add a new module in one transaction.\n @param proxyFactory Module proxy factory contract.\n @param data Module constructor payload.", - "id": 1592, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createAndAddModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1576, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1573, - "name": "proxyFactory", - "nodeType": "VariableDeclaration", - "scope": 1592, - "src": "639:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1572, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "639:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1575, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1592, - "src": "661:10:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1574, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "661:5:15", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "638:34:15" - }, - "payable": false, - "returnParameters": { - "id": 1577, - "nodeType": "ParameterList", - "parameters": [], - "src": "692:0:15" - }, - "scope": 1604, - "src": "611:178:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1602, - "nodeType": "Block", - "src": "904:338:15", - "statements": [ - { - "externalReferences": [ - { - "module": { - "declaration": 1599, - "isOffset": false, - "isSlot": false, - "src": "1154:6:15", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1596, - "isOffset": false, - "isSlot": false, - "src": "1100:4:15", - "valueSize": 1 - } - }, - { - "proxyFactory": { - "declaration": 1594, - "isOffset": false, - "isSlot": false, - "src": "1063:12:15", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1596, - "isOffset": false, - "isSlot": false, - "src": "1081:4:15", - "valueSize": 1 - } - } - ], - "id": 1601, - "nodeType": "InlineAssembly", - "operations": "{\n let output := mload(0x40)\n if eq(delegatecall(gas(), proxyFactory, add(data, 0x20), mload(data), output, 0x20), 0)\n {\n revert(0, 0)\n }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n}", - "src": "978:264:15" - } - ] - }, - "documentation": null, - "id": 1603, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "createModule", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1597, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1594, - "name": "proxyFactory", - "nodeType": "VariableDeclaration", - "scope": 1603, - "src": "817:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1593, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "817:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1596, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1603, - "src": "839:10:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1595, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "839:5:15", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "816:34:15" - }, - "payable": false, - "returnParameters": { - "id": 1600, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1599, - "name": "module", - "nodeType": "VariableDeclaration", - "scope": 1603, - "src": "885:13:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - }, - "typeName": { - "contractScope": null, - "id": 1598, - "name": "Module", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 877, - "src": "885:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$877", - "typeString": "contract Module" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "884:15:15" - }, - "scope": 1604, - "src": "795:447:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1605, - "src": "190:1054:15" - } - ], - "src": "0:1245:15" - }, - "compiler": { - "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0xabb64de6d5ca20609e2f331bf3c4818a1f6f94fd", - "transactionHash": "0x61759c9f25325ca90bbd3d45b8a2c629e6ee721b995ec0ef614c3338516b530e" - }, - "1525950336085": { - "events": {}, - "links": {}, - "address": "0x544c20ddcab0459a99c93823d0c02d50f75ced36", - "transactionHash": "0x0e6adf453722b13530f4f8c8f947f6e5105156aa99a10b588447ed57e27d7b85" - }, - "1526283540628": { - "events": {}, - "links": {}, - "address": "0xdeabe313841db5cddcc1b5f01c6497ece16c2347", - "transactionHash": "0x0e6adf453722b13530f4f8c8f947f6e5105156aa99a10b588447ed57e27d7b85" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-05-14T07:39:37.967Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/CreateAndAddModules.json b/safe-contracts/build/contracts/CreateAndAddModules.json index 337a690b..bd8cbc94 100644 --- a/safe-contracts/build/contracts/CreateAndAddModules.json +++ b/safe-contracts/build/contracts/CreateAndAddModules.json @@ -34,40 +34,40 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610275806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360df7f5814610051578063610b5925146100da575b600080fd5b34801561005d57600080fd5b506100d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061011d565b005b3480156100e657600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610244565b005b600080600083519250600090505b8281101561023d5780840160200151818501604001604051600060208285858c5af4141561015857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080602085010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b5050505061012b565b5050505050565b600080fd00a165627a7a72305820e1479531e7421914f006918566f778761cf7bfa2673aa10247d2f44d375165410029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360df7f5814610051578063610b5925146100da575b600080fd5b34801561005d57600080fd5b506100d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061011d565b005b3480156100e657600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610244565b005b600080600083519250600090505b8281101561023d5780840160200151818501604001604051600060208285858c5af4141561015857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080602085010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b5050505061012b565b5050505050565b600080fd00a165627a7a72305820e1479531e7421914f006918566f778761cf7bfa2673aa10247d2f44d375165410029", - "sourceMap": "245:1457:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;245:1457:9;;;;;;;", - "deployedSourceMap": "245:1457:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;815:885;;8:9:-1;5:2;;;30:1;27;20:12;5:2;815:885:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;405:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;405:81:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;815:885;907:14;945:13;968:9;924:4;:11;907:28;;980:1;968:13;;991:703;1002:6;998:1;:10;991:703;;;1170:1;1164:4;1160:12;1154:4;1150:23;1144:30;1230:1;1224:4;1220:12;1214:4;1210:23;1271:4;1265:11;1378:1;1371:4;1363:6;1344:17;1331:11;1317:12;1312:3;1299:77;1296:84;1293:2;;;1393:1;1390;1383:12;1293:2;1443:42;1434:6;1428:13;1424:62;1414:72;;1624:4;1617;1610;1591:17;1587:28;1583:39;1579:50;1573:4;1569:61;1566:1;1562:69;1557:74;;1101:544;;;1658:4;:17;;;1676:6;1658:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1658:25:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1658:25:9;;;;991:703;;;815:885;;;;;:::o;405:81::-;471:8;;", - "source": "pragma solidity 0.4.23;\nimport \"../Module.sol\";\n\n\n/// @title Create and Add Modules - Allows to create and add multiple module in one transaction.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract CreateAndAddModules {\n\n /// @dev Function required to compile contract. Gnosis Safe function is called instead.\n /// @param module Not used.\n function enableModule(Module module)\n public\n {\n revert();\n }\n\n /// @dev Allows to create and add multiple module in one transaction.\n /// @param proxyFactory Module proxy factory contract.\n /// @param data Modules constructor payload. This is the data for each proxy factory call concatinated. (e.g. )\n function createAndAddModules(address proxyFactory, bytes data)\n public\n {\n uint256 length = data.length;\n Module module;\n uint256 i = 0;\n while (i < length) {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let createBytesLength := mload(add(0x20, add(data, i)))\n let createBytes := add(0x40, add(data, i))\n\n let output := mload(0x40)\n if eq(delegatecall(gas, proxyFactory, createBytes, createBytesLength, output, 0x20), 0) { revert(0, 0) }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Data is always padded to 32 bytes\n i := add(i, add(0x20, mul(div(add(createBytesLength, 0x20), 0x20), 0x20)))\n }\n this.enableModule(module);\n }\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50610275806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360df7f5814610051578063610b5925146100da575b600080fd5b34801561005d57600080fd5b506100d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061011d565b005b3480156100e657600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610244565b005b600080600083519250600090505b8281101561023d5780840160200151818501604001604051600060208285858c5af4141561015857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080601f85010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b5050505061012b565b5050505050565b600080fd00a165627a7a723058208f7a97e938c15e3356168d53d19c7667249d0a3b35454b33fa8a258c0655d6ce0029", + "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806360df7f5814610051578063610b5925146100da575b600080fd5b34801561005d57600080fd5b506100d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061011d565b005b3480156100e657600080fd5b5061011b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610244565b005b600080600083519250600090505b8281101561023d5780840160200151818501604001604051600060208285858c5af4141561015857600080fd5b73ffffffffffffffffffffffffffffffffffffffff8151169450602080601f85010402602001840193505050503073ffffffffffffffffffffffffffffffffffffffff1663610b5925836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b15801561022057600080fd5b505af1158015610234573d6000803e3d6000fd5b5050505061012b565b5050505050565b600080fd00a165627a7a723058208f7a97e938c15e3356168d53d19c7667249d0a3b35454b33fa8a258c0655d6ce0029", + "sourceMap": "245:1457:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;245:1457:15;;;;;;;", + "deployedSourceMap": "245:1457:15:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;815:885;;8:9:-1;5:2;;;30:1;27;20:12;5:2;815:885:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;405:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;405:81:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;815:885;907:14;945:13;968:9;924:4;:11;907:28;;980:1;968:13;;991:703;1002:6;998:1;:10;991:703;;;1170:1;1164:4;1160:12;1154:4;1150:23;1144:30;1230:1;1224:4;1220:12;1214:4;1210:23;1271:4;1265:11;1378:1;1371:4;1363:6;1344:17;1331:11;1317:12;1312:3;1299:77;1296:84;1293:2;;;1393:1;1390;1383:12;1293:2;1443:42;1434:6;1428:13;1424:62;1414:72;;1624:4;1617;1610;1591:17;1587:28;1583:39;1579:50;1573:4;1569:61;1566:1;1562:69;1557:74;;1101:544;;;1658:4;:17;;;1676:6;1658:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1658:25:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1658:25:15;;;;991:703;;;815:885;;;;;:::o;405:81::-;471:8;;", + "source": "pragma solidity 0.4.24;\nimport \"../Module.sol\";\n\n\n/// @title Create and Add Modules - Allows to create and add multiple module in one transaction.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract CreateAndAddModules {\n\n /// @dev Function required to compile contract. Gnosis Safe function is called instead.\n /// @param module Not used.\n function enableModule(Module module)\n public\n {\n revert();\n }\n\n /// @dev Allows to create and add multiple module in one transaction.\n /// @param proxyFactory Module proxy factory contract.\n /// @param data Modules constructor payload. This is the data for each proxy factory call concatinated. (e.g. )\n function createAndAddModules(address proxyFactory, bytes data)\n public\n {\n uint256 length = data.length;\n Module module;\n uint256 i = 0;\n while (i < length) {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let createBytesLength := mload(add(0x20, add(data, i)))\n let createBytes := add(0x40, add(data, i))\n\n let output := mload(0x40)\n if eq(delegatecall(gas, proxyFactory, createBytes, createBytesLength, output, 0x20), 0) { revert(0, 0) }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n\n // Data is always padded to 32 bytes\n i := add(i, add(0x20, mul(div(add(createBytesLength, 0x1f), 0x20), 0x20)))\n }\n this.enableModule(module);\n }\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", "exportedSymbols": { "CreateAndAddModules": [ - 1404 + 1730 ] }, - "id": 1405, + "id": 1731, "nodeType": "SourceUnit", "nodes": [ { - "id": 1361, + "id": 1687, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:9" + "src": "0:23:15" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 1362, + "id": 1688, "nodeType": "ImportDirective", - "scope": 1405, - "sourceUnit": 622, - "src": "24:23:9", + "scope": 1731, + "sourceUnit": 751, + "src": "24:23:15", "symbolAliases": [], "unitAlias": "" }, @@ -77,18 +77,18 @@ "contractKind": "contract", "documentation": "@title Create and Add Modules - Allows to create and add multiple module in one transaction.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1404, + "id": 1730, "linearizedBaseContracts": [ - 1404 + 1730 ], "name": "CreateAndAddModules", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1370, + "id": 1696, "nodeType": "Block", - "src": "461:25:9", + "src": "461:25:15", "statements": [ { "expression": { @@ -96,21 +96,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1367, + "id": 1693, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 2401, - 2402 + 2603, + 2604 ], - "referencedDeclaration": 2401, - "src": "471:6:9", + "referencedDeclaration": 2603, + "src": "471:6:15", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1368, + "id": 1694, "isConstant": false, "isLValue": false, "isPure": false, @@ -118,20 +118,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "471:8:9", + "src": "471:8:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1369, + "id": 1695, "nodeType": "ExpressionStatement", - "src": "471:8:9" + "src": "471:8:15" } ] }, "documentation": "@dev Function required to compile contract. Gnosis Safe function is called instead.\n @param module Not used.", - "id": 1371, + "id": 1697, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -139,31 +139,31 @@ "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1365, + "id": 1691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1364, + "id": 1690, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1371, - "src": "427:13:9", + "scope": 1697, + "src": "427:13:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1363, + "id": 1689, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "427:6:9", + "referencedDeclaration": 750, + "src": "427:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -171,39 +171,39 @@ "visibility": "internal" } ], - "src": "426:15:9" + "src": "426:15:15" }, "payable": false, "returnParameters": { - "id": 1366, + "id": 1692, "nodeType": "ParameterList", "parameters": [], - "src": "461:0:9" + "src": "461:0:15" }, - "scope": 1404, - "src": "405:81:9", + "scope": 1730, + "src": "405:81:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1402, + "id": 1728, "nodeType": "Block", - "src": "897:803:9", + "src": "897:803:15", "statements": [ { "assignments": [ - 1379 + 1705 ], "declarations": [ { "constant": false, - "id": 1379, + "id": 1705, "name": "length", "nodeType": "VariableDeclaration", - "scope": 1403, - "src": "907:14:9", + "scope": 1729, + "src": "907:14:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -211,10 +211,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1378, + "id": 1704, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "907:7:9", + "src": "907:7:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -224,23 +224,23 @@ "visibility": "internal" } ], - "id": 1382, + "id": 1708, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1380, + "id": 1706, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1375, - "src": "924:4:9", + "referencedDeclaration": 1701, + "src": "924:4:15", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1381, + "id": 1707, "isConstant": false, "isLValue": false, "isPure": false, @@ -248,40 +248,40 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "924:11:9", + "src": "924:11:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "907:28:9" + "src": "907:28:15" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 1384, + "id": 1710, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1403, - "src": "945:13:9", + "scope": 1729, + "src": "945:13:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1383, + "id": 1709, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "945:6:9", + "referencedDeclaration": 750, + "src": "945:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -289,23 +289,23 @@ "visibility": "internal" } ], - "id": 1385, + "id": 1711, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "945:13:9" + "src": "945:13:15" }, { "assignments": [ - 1387 + 1713 ], "declarations": [ { "constant": false, - "id": 1387, + "id": 1713, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1403, - "src": "968:9:9", + "scope": 1729, + "src": "968:9:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -313,10 +313,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1386, + "id": 1712, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "968:7:9", + "src": "968:7:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -326,18 +326,18 @@ "visibility": "internal" } ], - "id": 1389, + "id": 1715, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1388, + "id": 1714, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "980:1:9", + "src": "980:1:15", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -346,93 +346,93 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "968:13:9" + "src": "968:13:15" }, { "body": { - "id": 1400, + "id": 1726, "nodeType": "Block", - "src": "1010:684:9", + "src": "1010:684:15", "statements": [ { "externalReferences": [ { "module": { - "declaration": 1384, + "declaration": 1710, "isOffset": false, "isSlot": false, - "src": "1414:6:9", + "src": "1414:6:15", "valueSize": 1 } }, { "data": { - "declaration": 1375, + "declaration": 1701, "isOffset": false, "isSlot": false, - "src": "1164:4:9", + "src": "1164:4:15", "valueSize": 1 } }, { "i": { - "declaration": 1387, + "declaration": 1713, "isOffset": false, "isSlot": false, - "src": "1170:1:9", + "src": "1170:1:15", "valueSize": 1 } }, { "data": { - "declaration": 1375, + "declaration": 1701, "isOffset": false, "isSlot": false, - "src": "1224:4:9", + "src": "1224:4:15", "valueSize": 1 } }, { "i": { - "declaration": 1387, + "declaration": 1713, "isOffset": false, "isSlot": false, - "src": "1230:1:9", + "src": "1230:1:15", "valueSize": 1 } }, { "i": { - "declaration": 1387, + "declaration": 1713, "isOffset": false, "isSlot": false, - "src": "1557:1:9", + "src": "1557:1:15", "valueSize": 1 } }, { "proxyFactory": { - "declaration": 1373, + "declaration": 1699, "isOffset": false, "isSlot": false, - "src": "1317:12:9", + "src": "1317:12:15", "valueSize": 1 } }, { "i": { - "declaration": 1387, + "declaration": 1713, "isOffset": false, "isSlot": false, - "src": "1566:1:9", + "src": "1566:1:15", "valueSize": 1 } } ], - "id": 1393, + "id": 1719, "nodeType": "InlineAssembly", - "operations": "{\n let createBytesLength := mload(add(0x20, add(data, i)))\n let createBytes := add(0x40, add(data, i))\n let output := mload(0x40)\n if eq(delegatecall(gas(), proxyFactory, createBytes, createBytesLength, output, 0x20), 0)\n {\n revert(0, 0)\n }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n i := add(i, add(0x20, mul(div(add(createBytesLength, 0x20), 0x20), 0x20)))\n}", - "src": "1092:570:9" + "operations": "{\n let createBytesLength := mload(add(0x20, add(data, i)))\n let createBytes := add(0x40, add(data, i))\n let output := mload(0x40)\n if eq(delegatecall(gas(), proxyFactory, createBytes, createBytesLength, output, 0x20), 0)\n {\n revert(0, 0)\n }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n i := add(i, add(0x20, mul(div(add(createBytesLength, 0x1f), 0x20), 0x20)))\n}", + "src": "1092:570:15" }, { "expression": { @@ -440,14 +440,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1397, + "id": 1723, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1384, - "src": "1676:6:9", + "referencedDeclaration": 1710, + "src": "1676:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } } @@ -455,38 +455,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } ], "expression": { "argumentTypes": null, - "id": 1394, + "id": 1720, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2427, - "src": "1658:4:9", + "referencedDeclaration": 2641, + "src": "1658:4:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_CreateAndAddModules_$1404", + "typeIdentifier": "t_contract$_CreateAndAddModules_$1730", "typeString": "contract CreateAndAddModules" } }, - "id": 1396, + "id": 1722, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "enableModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1371, - "src": "1658:17:9", + "referencedDeclaration": 1697, + "src": "1658:17:15", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$621_$returns$__$", + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$750_$returns$__$", "typeString": "function (contract Module) external" } }, - "id": 1398, + "id": 1724, "isConstant": false, "isLValue": false, "isPure": false, @@ -494,15 +494,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1658:25:9", + "src": "1658:25:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1399, + "id": 1725, "nodeType": "ExpressionStatement", - "src": "1658:25:9" + "src": "1658:25:15" } ] }, @@ -512,19 +512,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1392, + "id": 1718, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1390, + "id": 1716, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1387, - "src": "998:1:9", + "referencedDeclaration": 1713, + "src": "998:1:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -534,31 +534,31 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 1391, + "id": 1717, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "1002:6:9", + "referencedDeclaration": 1705, + "src": "1002:6:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:9", + "src": "998:10:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1401, + "id": 1727, "nodeType": "WhileStatement", - "src": "991:703:9" + "src": "991:703:15" } ] }, "documentation": "@dev Allows to create and add multiple module in one transaction.\n @param proxyFactory Module proxy factory contract.\n @param data Modules constructor payload. This is the data for each proxy factory call concatinated. (e.g. )", - "id": 1403, + "id": 1729, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -566,16 +566,16 @@ "name": "createAndAddModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 1376, + "id": 1702, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1373, + "id": 1699, "name": "proxyFactory", "nodeType": "VariableDeclaration", - "scope": 1403, - "src": "844:20:9", + "scope": 1729, + "src": "844:20:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -583,10 +583,10 @@ "typeString": "address" }, "typeName": { - "id": 1372, + "id": 1698, "name": "address", "nodeType": "ElementaryTypeName", - "src": "844:7:9", + "src": "844:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -597,11 +597,11 @@ }, { "constant": false, - "id": 1375, + "id": 1701, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1403, - "src": "866:10:9", + "scope": 1729, + "src": "866:10:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -609,10 +609,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1374, + "id": 1700, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "866:5:9", + "src": "866:5:15", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -622,56 +622,56 @@ "visibility": "internal" } ], - "src": "843:34:9" + "src": "843:34:15" }, "payable": false, "returnParameters": { - "id": 1377, + "id": 1703, "nodeType": "ParameterList", "parameters": [], - "src": "897:0:9" + "src": "897:0:15" }, - "scope": 1404, - "src": "815:885:9", + "scope": 1730, + "src": "815:885:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1405, - "src": "245:1457:9" + "scope": 1731, + "src": "245:1457:15" } ], - "src": "0:1703:9" + "src": "0:1703:15" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", "exportedSymbols": { "CreateAndAddModules": [ - 1404 + 1730 ] }, - "id": 1405, + "id": 1731, "nodeType": "SourceUnit", "nodes": [ { - "id": 1361, + "id": 1687, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:9" + "src": "0:23:15" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 1362, + "id": 1688, "nodeType": "ImportDirective", - "scope": 1405, - "sourceUnit": 622, - "src": "24:23:9", + "scope": 1731, + "sourceUnit": 751, + "src": "24:23:15", "symbolAliases": [], "unitAlias": "" }, @@ -681,18 +681,18 @@ "contractKind": "contract", "documentation": "@title Create and Add Modules - Allows to create and add multiple module in one transaction.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1404, + "id": 1730, "linearizedBaseContracts": [ - 1404 + 1730 ], "name": "CreateAndAddModules", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1370, + "id": 1696, "nodeType": "Block", - "src": "461:25:9", + "src": "461:25:15", "statements": [ { "expression": { @@ -700,21 +700,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1367, + "id": 1693, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 2401, - 2402 + 2603, + 2604 ], - "referencedDeclaration": 2401, - "src": "471:6:9", + "referencedDeclaration": 2603, + "src": "471:6:15", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1368, + "id": 1694, "isConstant": false, "isLValue": false, "isPure": false, @@ -722,20 +722,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "471:8:9", + "src": "471:8:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1369, + "id": 1695, "nodeType": "ExpressionStatement", - "src": "471:8:9" + "src": "471:8:15" } ] }, "documentation": "@dev Function required to compile contract. Gnosis Safe function is called instead.\n @param module Not used.", - "id": 1371, + "id": 1697, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -743,31 +743,31 @@ "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1365, + "id": 1691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1364, + "id": 1690, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1371, - "src": "427:13:9", + "scope": 1697, + "src": "427:13:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1363, + "id": 1689, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "427:6:9", + "referencedDeclaration": 750, + "src": "427:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -775,39 +775,39 @@ "visibility": "internal" } ], - "src": "426:15:9" + "src": "426:15:15" }, "payable": false, "returnParameters": { - "id": 1366, + "id": 1692, "nodeType": "ParameterList", "parameters": [], - "src": "461:0:9" + "src": "461:0:15" }, - "scope": 1404, - "src": "405:81:9", + "scope": 1730, + "src": "405:81:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1402, + "id": 1728, "nodeType": "Block", - "src": "897:803:9", + "src": "897:803:15", "statements": [ { "assignments": [ - 1379 + 1705 ], "declarations": [ { "constant": false, - "id": 1379, + "id": 1705, "name": "length", "nodeType": "VariableDeclaration", - "scope": 1403, - "src": "907:14:9", + "scope": 1729, + "src": "907:14:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -815,10 +815,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1378, + "id": 1704, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "907:7:9", + "src": "907:7:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -828,23 +828,23 @@ "visibility": "internal" } ], - "id": 1382, + "id": 1708, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1380, + "id": 1706, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1375, - "src": "924:4:9", + "referencedDeclaration": 1701, + "src": "924:4:15", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1381, + "id": 1707, "isConstant": false, "isLValue": false, "isPure": false, @@ -852,40 +852,40 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "924:11:9", + "src": "924:11:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "907:28:9" + "src": "907:28:15" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 1384, + "id": 1710, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1403, - "src": "945:13:9", + "scope": 1729, + "src": "945:13:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 1383, + "id": 1709, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "945:6:9", + "referencedDeclaration": 750, + "src": "945:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -893,23 +893,23 @@ "visibility": "internal" } ], - "id": 1385, + "id": 1711, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "945:13:9" + "src": "945:13:15" }, { "assignments": [ - 1387 + 1713 ], "declarations": [ { "constant": false, - "id": 1387, + "id": 1713, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1403, - "src": "968:9:9", + "scope": 1729, + "src": "968:9:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -917,10 +917,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1386, + "id": 1712, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "968:7:9", + "src": "968:7:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -930,18 +930,18 @@ "visibility": "internal" } ], - "id": 1389, + "id": 1715, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1388, + "id": 1714, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "980:1:9", + "src": "980:1:15", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -950,93 +950,93 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "968:13:9" + "src": "968:13:15" }, { "body": { - "id": 1400, + "id": 1726, "nodeType": "Block", - "src": "1010:684:9", + "src": "1010:684:15", "statements": [ { "externalReferences": [ { "module": { - "declaration": 1384, + "declaration": 1710, "isOffset": false, "isSlot": false, - "src": "1414:6:9", + "src": "1414:6:15", "valueSize": 1 } }, { "data": { - "declaration": 1375, + "declaration": 1701, "isOffset": false, "isSlot": false, - "src": "1164:4:9", + "src": "1164:4:15", "valueSize": 1 } }, { "i": { - "declaration": 1387, + "declaration": 1713, "isOffset": false, "isSlot": false, - "src": "1170:1:9", + "src": "1170:1:15", "valueSize": 1 } }, { "data": { - "declaration": 1375, + "declaration": 1701, "isOffset": false, "isSlot": false, - "src": "1224:4:9", + "src": "1224:4:15", "valueSize": 1 } }, { "i": { - "declaration": 1387, + "declaration": 1713, "isOffset": false, "isSlot": false, - "src": "1230:1:9", + "src": "1230:1:15", "valueSize": 1 } }, { "i": { - "declaration": 1387, + "declaration": 1713, "isOffset": false, "isSlot": false, - "src": "1557:1:9", + "src": "1557:1:15", "valueSize": 1 } }, { "proxyFactory": { - "declaration": 1373, + "declaration": 1699, "isOffset": false, "isSlot": false, - "src": "1317:12:9", + "src": "1317:12:15", "valueSize": 1 } }, { "i": { - "declaration": 1387, + "declaration": 1713, "isOffset": false, "isSlot": false, - "src": "1566:1:9", + "src": "1566:1:15", "valueSize": 1 } } ], - "id": 1393, + "id": 1719, "nodeType": "InlineAssembly", - "operations": "{\n let createBytesLength := mload(add(0x20, add(data, i)))\n let createBytes := add(0x40, add(data, i))\n let output := mload(0x40)\n if eq(delegatecall(gas(), proxyFactory, createBytes, createBytesLength, output, 0x20), 0)\n {\n revert(0, 0)\n }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n i := add(i, add(0x20, mul(div(add(createBytesLength, 0x20), 0x20), 0x20)))\n}", - "src": "1092:570:9" + "operations": "{\n let createBytesLength := mload(add(0x20, add(data, i)))\n let createBytes := add(0x40, add(data, i))\n let output := mload(0x40)\n if eq(delegatecall(gas(), proxyFactory, createBytes, createBytesLength, output, 0x20), 0)\n {\n revert(0, 0)\n }\n module := and(mload(output), 0xffffffffffffffffffffffffffffffffffffffff)\n i := add(i, add(0x20, mul(div(add(createBytesLength, 0x1f), 0x20), 0x20)))\n}", + "src": "1092:570:15" }, { "expression": { @@ -1044,14 +1044,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1397, + "id": 1723, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1384, - "src": "1676:6:9", + "referencedDeclaration": 1710, + "src": "1676:6:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } } @@ -1059,38 +1059,38 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } ], "expression": { "argumentTypes": null, - "id": 1394, + "id": 1720, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2427, - "src": "1658:4:9", + "referencedDeclaration": 2641, + "src": "1658:4:15", "typeDescriptions": { - "typeIdentifier": "t_contract$_CreateAndAddModules_$1404", + "typeIdentifier": "t_contract$_CreateAndAddModules_$1730", "typeString": "contract CreateAndAddModules" } }, - "id": 1396, + "id": 1722, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "enableModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1371, - "src": "1658:17:9", + "referencedDeclaration": 1697, + "src": "1658:17:15", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$621_$returns$__$", + "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$750_$returns$__$", "typeString": "function (contract Module) external" } }, - "id": 1398, + "id": 1724, "isConstant": false, "isLValue": false, "isPure": false, @@ -1098,15 +1098,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1658:25:9", + "src": "1658:25:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1399, + "id": 1725, "nodeType": "ExpressionStatement", - "src": "1658:25:9" + "src": "1658:25:15" } ] }, @@ -1116,19 +1116,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1392, + "id": 1718, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1390, + "id": 1716, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1387, - "src": "998:1:9", + "referencedDeclaration": 1713, + "src": "998:1:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1138,31 +1138,31 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 1391, + "id": 1717, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1379, - "src": "1002:6:9", + "referencedDeclaration": 1705, + "src": "1002:6:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "998:10:9", + "src": "998:10:15", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1401, + "id": 1727, "nodeType": "WhileStatement", - "src": "991:703:9" + "src": "991:703:15" } ] }, "documentation": "@dev Allows to create and add multiple module in one transaction.\n @param proxyFactory Module proxy factory contract.\n @param data Modules constructor payload. This is the data for each proxy factory call concatinated. (e.g. )", - "id": 1403, + "id": 1729, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1170,16 +1170,16 @@ "name": "createAndAddModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 1376, + "id": 1702, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1373, + "id": 1699, "name": "proxyFactory", "nodeType": "VariableDeclaration", - "scope": 1403, - "src": "844:20:9", + "scope": 1729, + "src": "844:20:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1187,10 +1187,10 @@ "typeString": "address" }, "typeName": { - "id": 1372, + "id": 1698, "name": "address", "nodeType": "ElementaryTypeName", - "src": "844:7:9", + "src": "844:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1201,11 +1201,11 @@ }, { "constant": false, - "id": 1375, + "id": 1701, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1403, - "src": "866:10:9", + "scope": 1729, + "src": "866:10:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1213,10 +1213,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1374, + "id": 1700, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "866:5:9", + "src": "866:5:15", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1226,58 +1226,52 @@ "visibility": "internal" } ], - "src": "843:34:9" + "src": "843:34:15" }, "payable": false, "returnParameters": { - "id": 1377, + "id": 1703, "nodeType": "ParameterList", "parameters": [], - "src": "897:0:9" + "src": "897:0:15" }, - "scope": 1404, - "src": "815:885:9", + "scope": 1730, + "src": "815:885:15", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1405, - "src": "245:1457:9" + "scope": 1731, + "src": "245:1457:15" } ], - "src": "0:1703:9" + "src": "0:1703:15" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { "4": { "events": {}, "links": {}, - "address": "0x824caabb57949792481937b7f2b4bb34d0d54354", - "transactionHash": "0xc8bb172c792293de7e58d6c15e6904606ba0560088570a6b465a439f96c530f8" - }, - "1526478212260": { - "events": {}, - "links": {}, - "address": "0x0dfc419b1f993f1d14459f802c5f4966a50640fe", - "transactionHash": "0x0bb1edef06266204f2710df9365b39aac03e0527a4d9b5b5ca12b7b1fbe888d8" - }, - "1526973574996": { - "events": {}, - "links": {}, - "address": "0x8dc367d2426d12c60633d4b8808f48164f5c9fce", - "transactionHash": "0x0bb1edef06266204f2710df9365b39aac03e0527a4d9b5b5ca12b7b1fbe888d8" + "address": "0x09938dc4aedf7573bea1acde27119525162caf86", + "transactionHash": "0x542ed496b9857fdad7870207cd3aa4de6ef756975a2f8f7b736e950aff77634e" }, "1527316019334": { "events": {}, "links": {}, - "address": "0x7836f09d609e4e1c6bd42ca90377ee5a30ccba75", - "transactionHash": "0x0bb1edef06266204f2710df9365b39aac03e0527a4d9b5b5ca12b7b1fbe888d8" + "address": "0x3476d04ef7a630db99177c493378763511783ecc", + "transactionHash": "0xa1f976aa57640d6f00fda50b5faa87e6395a25cb7ebcbdf43802038869c30189" + }, + "1527420696956": { + "events": {}, + "links": {}, + "address": "0xa13c4a216f6f3441841401afecdad68223f47cce", + "transactionHash": "0x5c5a77c0584fd75a1a9b7f932710af48fa6803a794ac7c28f17aea45b28c4f26" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-26T06:28:28.357Z" + "updatedAt": "2018-05-27T11:31:46.256Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/DailyLimitModule.json b/safe-contracts/build/contracts/DailyLimitModule.json index b94a18c4..aa13febb 100644 --- a/safe-contracts/build/contracts/DailyLimitModule.json +++ b/safe-contracts/build/contracts/DailyLimitModule.json @@ -1,20 +1,6 @@ { "contractName": "DailyLimitModule", "abi": [ - { - "constant": true, - "inputs": [], - "name": "TRANSFER_FUNCTION_IDENTIFIER", - "outputs": [ - { - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": true, "inputs": [], @@ -137,17 +123,17 @@ { "constant": false, "inputs": [ + { + "name": "token", + "type": "address" + }, { "name": "to", "type": "address" }, { - "name": "value", + "name": "amount", "type": "uint256" - }, - { - "name": "data", - "type": "bytes" } ], "name": "executeDailyLimit", @@ -171,73 +157,73 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610d72806100206000396000f3006080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f03146100a9578063430e47f814610152578063481c6a75146101bb5780637de7edef1461021257806381c5e03b14610255578063a3f4df7e146102a2578063b74e452b14610332578063d7bffc921461035d578063fce7379a146103c2578063ffa1ad7414610455575b600080fd5b3480156100b557600080fd5b5061015060048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506104e5565b005b34801561015e57600080fd5b50610167610584565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156101c757600080fd5b506101d06105a8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021e57600080fd5b50610253600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105ce565b005b34801561026157600080fd5b506102a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610693565b005b3480156102ae57600080fd5b506102b761073a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f75780820151818401526020810190506102dc565b50505050905090810190601f1680156103245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033e57600080fd5b50610347610773565b6040518082815260200191505060405180910390f35b34801561036957600080fd5b5061039e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061078b565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103ce57600080fd5b50610453600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506107b5565b005b34801561046157600080fd5b5061046a6107c6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104aa57808201518184015260208101905061048f565b50505050905090810190601f1680156104d75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104ef6107ff565b600090505b825181101561057f57818181518110151561050b57fe5b9060200190602002015160026000858481518110151561052757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080806001019150506104f4565b505050565b7fa9059cbb0000000000000000000000000000000000000000000000000000000081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561062a57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561065057600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ef57600080fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561078357fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6107c133848484610889565b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561084657600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561094c57600080fd5b505af1158015610960573d6000803e3d6000fd5b505050506040513d602081101561097657600080fd5b8101908080519060200190929190505050151561099257600080fd5b600085511480156109a35750600086115b806109bb5750600085511180156109ba5750600086145b5b15156109c657600080fd5b6000855114156109df5760009350869250859150610a64565b8693506020850151905060248501519250604485015191507fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515610a6357600080fd5b5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610a8a57600080fd5b600082111515610a9957600080fd5b610aa38483610c97565b1515610aae57600080fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540192505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a788888860006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bb857fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bf8578082015181840152602081019050610bdd565b50505050905090810190601f168015610c255780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4757600080fd5b505af1158015610c5b573d6000803e3d6000fd5b505050506040513d6020811015610c7157600080fd5b81019080805190602001909291905050501515610c8d57600080fd5b5050505050505050565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154610ce8610773565b1115610d0957610cf6610773565b8160020181905550600081600101819055505b80600001548382600101540111158015610d2c5750806001015483826001015401115b15610d3a5760019150610d3f565b600091505b50929150505600a165627a7a723058202b262db46605128446bbaae57646d72dc1cd47e08c0421acebf8b1657c881b990029", - "deployedBytecode": "0x6080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f03146100a9578063430e47f814610152578063481c6a75146101bb5780637de7edef1461021257806381c5e03b14610255578063a3f4df7e146102a2578063b74e452b14610332578063d7bffc921461035d578063fce7379a146103c2578063ffa1ad7414610455575b600080fd5b3480156100b557600080fd5b5061015060048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506104e5565b005b34801561015e57600080fd5b50610167610584565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156101c757600080fd5b506101d06105a8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561021e57600080fd5b50610253600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105ce565b005b34801561026157600080fd5b506102a0600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610693565b005b3480156102ae57600080fd5b506102b761073a565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f75780820151818401526020810190506102dc565b50505050905090810190601f1680156103245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033e57600080fd5b50610347610773565b6040518082815260200191505060405180910390f35b34801561036957600080fd5b5061039e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061078b565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103ce57600080fd5b50610453600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506107b5565b005b34801561046157600080fd5b5061046a6107c6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104aa57808201518184015260208101905061048f565b50505050905090810190601f1680156104d75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104ef6107ff565b600090505b825181101561057f57818181518110151561050b57fe5b9060200190602002015160026000858481518110151561052757fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080806001019150506104f4565b505050565b7fa9059cbb0000000000000000000000000000000000000000000000000000000081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561062a57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561065057600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ef57600080fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561078357fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6107c133848484610889565b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561084657600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561094c57600080fd5b505af1158015610960573d6000803e3d6000fd5b505050506040513d602081101561097657600080fd5b8101908080519060200190929190505050151561099257600080fd5b600085511480156109a35750600086115b806109bb5750600085511180156109ba5750600086145b5b15156109c657600080fd5b6000855114156109df5760009350869250859150610a64565b8693506020850151905060248501519250604485015191507fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515610a6357600080fd5b5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610a8a57600080fd5b600082111515610a9957600080fd5b610aa38483610c97565b1515610aae57600080fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540192505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a788888860006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bb857fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bf8578082015181840152602081019050610bdd565b50505050905090810190601f168015610c255780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4757600080fd5b505af1158015610c5b573d6000803e3d6000fd5b505050506040513d6020811015610c7157600080fd5b81019080805190602001909291905050501515610c8d57600080fd5b5050505050505050565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154610ce8610773565b1115610d0957610cf6610773565b8160020181905550600081600101819055505b80600001548382600101540111158015610d2c5750806001015483826001015401115b15610d3a5760019150610d3f565b600091505b50929150505600a165627a7a723058202b262db46605128446bbaae57646d72dc1cd47e08c0421acebf8b1657c881b990029", - "sourceMap": "296:3862:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;296:3862:10;;;;;;;", - "deployedSourceMap": "296:3862:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;991:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;991:222:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;441:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;441:67:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:5;;;;;;;;;;;;;;;;;;;;;;;;;;;626:208:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;1441:158:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1441:158:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;339:50:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;339:50:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4040:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4040:116:10;;;;;;;;;;;;;;;;;;;;;;;586:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;586:50:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3308:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3308:146:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;395:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;395:40:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;395:40:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;991:222;1104:9;1077:12;:10;:12::i;:::-;1116:1;1104:13;;1099:107;1123:6;:13;1119:1;:17;1099:107;;;1191:12;1204:1;1191:15;;;;;;;;;;;;;;;;;;1155:11;:22;1167:6;1174:1;1167:9;;;;;;;;;;;;;;;;;;1155:22;;;;;;;;;;;;;;;:33;;:51;;;;1138:3;;;;;;;1099:107;;;991:222;;;:::o;441:67::-;;;:::o;262:28:5:-;;;;;;;;;;;;;:::o;626:208:4:-;359:7:5;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;791:1:4;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o;1441:158:10:-;359:7:5;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;1582:10:10;1550:11;:18;1562:5;1550:18;;;;;;;;;;;;;;;:29;;:42;;;;1441:158;;:::o;339:50::-;;;;;;;;;;;;;;;;;;;;:::o;4040:116::-;4102:4;4142:6;4136:3;:12;;;;;;;;4129:3;:20;4122:27;;4040:116;:::o;586:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3308:146::-;3403:44;3419:10;3431:2;3435:5;3442:4;3403:15;:44::i;:::-;3308:146;;;:::o;395:40::-;;;;;;;;;;;;;;;;;;;;:::o;392:268:5:-;606:1;594:7;;;;;;;;;;;586:21;;;578:30;;;;;;;;642:10;618:7;;:35;;;;;;;;;;;;;;;;;;392:268::o;1605:1319:10:-;1997:13;2020:16;2046:14;2233:25;1814:7;;;;;;;;;;;1801:29;;;1831:6;1801:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1801:37:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1801:37:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1801:37:10;;;;;;;;;;;;;;;;1793:46;;;;;;;;1939:1;1924:4;:11;:16;:29;;;;;1952:1;1944:5;:9;1924:29;:62;;;;1971:1;1957:4;:11;:15;:29;;;;;1985:1;1976:5;:10;1957:29;1924:62;1916:71;;;;;;;;2089:1;2074:4;:11;:16;2070:538;;;2114:1;2106:9;;2140:2;2129:13;;2165:5;2156:14;;2070:538;;;2217:2;2209:10;;2405:4;2399;2395:15;2389:22;2367:44;;2456:4;2450;2446:15;2440:22;2428:34;;2505:4;2499;2495:15;2489:22;2479:32;;2568:28;2546:50;;;:18;:50;;;;2538:59;;;;;;;;2070:538;2637:1;2625:8;:13;;;;2617:22;;;;;;;;2666:1;2657:6;:10;2649:19;;;;;;;;2750:27;2763:5;2770:6;2750:12;:27::i;:::-;2742:36;;;;;;;;2821:6;2788:11;:18;2800:5;2788:18;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;2845:7;;;;;;;;;;;:33;;;2879:2;2883:5;2890:4;2896:19;2845:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2845:71:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2845:71:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2845:71:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2845:71:10;;;;;;;;;;;;;;;;2837:80;;;;;;;;1605:1319;;;;;;;;:::o;3460:488::-;3547:4;3567:29;3599:11;:18;3611:5;3599:18;;;;;;;;;;;;;;;3567:50;;3641:10;:18;;;3631:7;:5;:7::i;:::-;:28;3627:126;;;3696:7;:5;:7::i;:::-;3675:10;:18;;:28;;;;3741:1;3717:10;:21;;:25;;;;3627:126;3803:10;:21;;;3793:6;3769:10;:21;;;:30;:55;;:125;;;;;3873:10;:21;;;3864:6;3840:10;:21;;;:30;:54;3769:125;3762:157;;;3915:4;3908:11;;;;3762:157;3936:5;3929:12;;3460:488;;;;;;:::o", - "source": "pragma solidity 0.4.23;\nimport \"../Module.sol\";\nimport \"../ModuleManager.sol\";\nimport \"../OwnerManager.sol\";\nimport \"../Enum.sol\";\n\n\n/// @title Daily Limit Module - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n/// @author Stefan George - \ncontract DailyLimitModule is Module {\n\n string public constant NAME = \"Daily Limit Module\";\n string public constant VERSION = \"0.0.1\";\n bytes4 public constant TRANSFER_FUNCTION_IDENTIFIER = hex\"a9059cbb\";\n\n // dailyLimits mapping maps token address to daily limit settings.\n mapping (address => DailyLimit) public dailyLimits;\n\n struct DailyLimit {\n uint256 dailyLimit;\n uint256 spentToday;\n uint256 lastDay;\n }\n\n /// @dev Setup function sets initial storage of contract.\n /// @param tokens List of token addresses. Ether is represented with address 0x0.\n /// @param _dailyLimits List of daily limits in smalles units (e.g. Wei for Ether).\n function setup(address[] tokens, uint256[] _dailyLimits)\n public\n {\n setManager();\n for (uint256 i = 0; i < tokens.length; i++)\n dailyLimits[tokens[i]].dailyLimit = _dailyLimits[i];\n }\n\n /// @dev Allows to update the daily limit for a specified token. This can only be done via a Safe transaction.\n /// @param token Token contract address.\n /// @param dailyLimit Daily limit in smallest token unit.\n function changeDailyLimit(address token, uint256 dailyLimit)\n public\n authorized\n {\n dailyLimits[token].dailyLimit = dailyLimit;\n }\n\n function executeInternal(address sender, address to, uint256 value, bytes data)\n internal\n {\n // Only Safe owners are allowed to execute daily limit transactions.\n require(OwnerManager(manager).isOwner(sender));\n // Data has to encode a token transfer or has to be empty.\n require(data.length == 0 && value > 0 || data.length > 0 && value == 0);\n address token;\n address receiver;\n uint256 amount;\n if (data.length == 0) {\n token = 0;\n receiver = to;\n amount = value;\n }\n else {\n token = to;\n bytes4 functionIdentifier;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n functionIdentifier := mload(add(data, 0x20))\n receiver := mload(add(data, 0x24))\n amount := mload(add(data, 0x44))\n }\n require(functionIdentifier == TRANSFER_FUNCTION_IDENTIFIER);\n }\n require(receiver != 0);\n require(amount > 0);\n // Validate that transfer is not exceeding daily limit.\n require(isUnderLimit(token, amount));\n dailyLimits[token].spentToday += amount;\n require(manager.execTransactionFromModule(to, value, data, Enum.Operation.Call));\n }\n\n /// @dev Returns if Safe transaction is a valid daily limit transaction.\n /// @param to Receiver address in case of Ether transfer, token address in case of a token transfer.\n /// @param value Ether value in case of an Ether transfer.\n /// @param data Encoded token transfer. Empty in case of Ether transfer.\n /// @return Returns if transaction can be executed.\n function executeDailyLimit(address to, uint256 value, bytes data)\n public\n {\n executeInternal(msg.sender, to, value, data);\n }\n\n function isUnderLimit(address token, uint256 amount)\n internal\n returns (bool)\n {\n DailyLimit storage dailyLimit = dailyLimits[token];\n if (today() > dailyLimit.lastDay) {\n dailyLimit.lastDay = today();\n dailyLimit.spentToday = 0;\n }\n if ( dailyLimit.spentToday + amount <= dailyLimit.dailyLimit\n && dailyLimit.spentToday + amount > dailyLimit.spentToday)\n return true;\n return false;\n }\n\n /// @dev Returns last midnight as Unix timestamp.\n /// @return Unix timestamp.\n function today()\n public\n view\n returns (uint)\n {\n return now - (now % 1 days);\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50610de9806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a64565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b29565b005b3480156102a757600080fd5b506102b0610bd0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340610c09565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c21565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0610c4b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000610455610c84565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b8101908080519060200190929190505050151561061557600080fd5b60008373ffffffffffffffffffffffffffffffffffffffff161415151561063b57600080fd5b60008211151561064a57600080fd5b6106548483610d0e565b151561065f57600080fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff16141561080957600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561078757fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b1580156107be57600080fd5b505af11580156107d2573d6000803e3d6000fd5b505050506040513d60208110156107e857600080fd5b8101908080519060200190929190505050151561080457600080fd5b610a5e565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561098857fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156109c85780820151818401526020810190506109ad565b50505050905090810190601f1680156109f55780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b505050506040513d6020811015610a4157600080fd5b81019080805190602001909291905050501515610a5d57600080fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ac057600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ae657600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8557600080fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b60006201518042811515610c1957fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610ccb57600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154610d5f610c09565b1115610d8057610d6d610c09565b8160020181905550600081600101819055505b80600001548382600101540111158015610da35750806001015483826001015401115b15610db15760019150610db6565b600091505b50929150505600a165627a7a723058204a6f633058d32a4c7f0a2649d73dd0a0048102b89b6ddd371abdbd004bd34c790029", + "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a64565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b29565b005b3480156102a757600080fd5b506102b0610bd0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340610c09565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c21565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0610c4b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000610455610c84565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b8101908080519060200190929190505050151561061557600080fd5b60008373ffffffffffffffffffffffffffffffffffffffff161415151561063b57600080fd5b60008211151561064a57600080fd5b6106548483610d0e565b151561065f57600080fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff16141561080957600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561078757fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b1580156107be57600080fd5b505af11580156107d2573d6000803e3d6000fd5b505050506040513d60208110156107e857600080fd5b8101908080519060200190929190505050151561080457600080fd5b610a5e565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561098857fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156109c85780820151818401526020810190506109ad565b50505050905090810190601f1680156109f55780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610a1757600080fd5b505af1158015610a2b573d6000803e3d6000fd5b505050506040513d6020811015610a4157600080fd5b81019080805190602001909291905050501515610a5d57600080fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ac057600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ae657600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b8557600080fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b60006201518042811515610c1957fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610ccb57600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154610d5f610c09565b1115610d8057610d6d610c09565b8160020181905550600081600101819055505b80600001548382600101540111158015610da35750806001015483826001015401115b15610db15760019150610db6565b600091505b50929150505600a165627a7a723058204a6f633058d32a4c7f0a2649d73dd0a0048102b89b6ddd371abdbd004bd34c790029", + "sourceMap": "296:3082:17:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;296:3082:17;;;;;;;", + "deployedSourceMap": "296:3082:17:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;918:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;918:222:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;1890:784:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1890:784:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:208:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1368:158:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1368:158:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;339:50:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;339:50:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3260:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3260:116:17;;;;;;;;;;;;;;;;;;;;;;;513:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;513:50:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;395:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;395:40:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;395:40:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;918:222;1031:9;1004:12;:10;:12::i;:::-;1043:1;1031:13;;1026:107;1050:6;:13;1046:1;:17;1026:107;;;1118:12;1131:1;1118:15;;;;;;;;;;;;;;;;;;1082:11;:22;1094:6;1101:1;1094:9;;;;;;;;;;;;;;;;;;1082:22;;;;;;;;;;;;;;;:33;;:51;;;;1065:3;;;;;;;1026:107;;;918:222;;;:::o;262:28:7:-;;;;;;;;;;;;;:::o;1890:784:17:-;2480:17;2087:7;;;;;;;;;;;2074:29;;;2104:10;2074:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2074:41:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2074:41:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2074:41:17;;;;;;;;;;;;;;;;2066:50;;;;;;;;2140:1;2134:2;:7;;;;2126:16;;;;;;;;2169:1;2160:6;:10;2152:19;;;;;;;;2253:27;2266:5;2273:6;2253:12;:27::i;:::-;2245:36;;;;;;;;2324:6;2291:11;:18;2303:5;2291:18;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;2353:1;2344:5;:10;;;2340:328;;;2378:7;;;;;;;;;;;:33;;;2412:2;2416:6;2428:19;2378:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2378:70:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2378:70:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2378:70:17;;;;;;;;;;;;;;;;2370:79;;;;;;;;2340:328;;;2553:2;2557:6;2500:64;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2500:64:17;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2500:64:17;2480:84;;2586:7;;;;;;;;;;;:33;;;2620:5;2627:1;2630:4;2636:19;2586:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2586:70:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2586:70:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2586:70:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2586:70:17;;;;;;;;;;;;;;;;2578:79;;;;;;;;2340:328;1890:784;;;;:::o;626:208:5:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;791:1:5;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o;1368:158:17:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;1509:10:17;1477:11;:18;1489:5;1477:18;;;;;;;;;;;;;;;:29;;:42;;;;1368:158;;:::o;339:50::-;;;;;;;;;;;;;;;;;;;;:::o;3260:116::-;3322:4;3362:6;3356:3;:12;;;;;;;;3349:3;:20;3342:27;;3260:116;:::o;513:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;395:40::-;;;;;;;;;;;;;;;;;;;;:::o;392:268:7:-;606:1;594:7;;;;;;;;;;;586:21;;;578:30;;;;;;;;642:10;618:7;;:35;;;;;;;;;;;;;;;;;;392:268::o;2680:488:17:-;2767:4;2787:29;2819:11;:18;2831:5;2819:18;;;;;;;;;;;;;;;2787:50;;2861:10;:18;;;2851:7;:5;:7::i;:::-;:28;2847:126;;;2916:7;:5;:7::i;:::-;2895:10;:18;;:28;;;;2961:1;2937:10;:21;;:25;;;;2847:126;3023:10;:21;;;3013:6;2989:10;:21;;;:30;:55;;:125;;;;;3093:10;:21;;;3084:6;3060:10;:21;;;:30;:54;2989:125;2982:157;;;3135:4;3128:11;;;;2982:157;3156:5;3149:12;;2680:488;;;;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"../Module.sol\";\nimport \"../ModuleManager.sol\";\nimport \"../OwnerManager.sol\";\nimport \"../Enum.sol\";\n\n\n/// @title Daily Limit Module - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n/// @author Stefan George - \ncontract DailyLimitModule is Module {\n\n string public constant NAME = \"Daily Limit Module\";\n string public constant VERSION = \"0.0.1\";\n\n // dailyLimits mapping maps token address to daily limit settings.\n mapping (address => DailyLimit) public dailyLimits;\n\n struct DailyLimit {\n uint256 dailyLimit;\n uint256 spentToday;\n uint256 lastDay;\n }\n\n /// @dev Setup function sets initial storage of contract.\n /// @param tokens List of token addresses. Ether is represented with address 0x0.\n /// @param _dailyLimits List of daily limits in smalles units (e.g. Wei for Ether).\n function setup(address[] tokens, uint256[] _dailyLimits)\n public\n {\n setManager();\n for (uint256 i = 0; i < tokens.length; i++)\n dailyLimits[tokens[i]].dailyLimit = _dailyLimits[i];\n }\n\n /// @dev Allows to update the daily limit for a specified token. This can only be done via a Safe transaction.\n /// @param token Token contract address.\n /// @param dailyLimit Daily limit in smallest token unit.\n function changeDailyLimit(address token, uint256 dailyLimit)\n public\n authorized\n {\n dailyLimits[token].dailyLimit = dailyLimit;\n }\n\n /// @dev Returns if Safe transaction is a valid daily limit transaction.\n /// @param token Address of the token that should be transfered (0 for Ether)\n /// @param to Address to which the tokens should be transfered\n /// @param amount Amount of tokens (or Ether) that should be transfered\n /// @return Returns if transaction can be executed.\n function executeDailyLimit(address token, address to, uint256 amount)\n public\n {\n // Only Safe owners are allowed to execute daily limit transactions.\n require(OwnerManager(manager).isOwner(msg.sender));\n require(to != 0);\n require(amount > 0);\n // Validate that transfer is not exceeding daily limit.\n require(isUnderLimit(token, amount));\n dailyLimits[token].spentToday += amount;\n if (token == 0) {\n require(manager.execTransactionFromModule(to, amount, \"\", Enum.Operation.Call));\n } else {\n bytes memory data = abi.encodeWithSignature(\"transfer(address,uint256)\", to, amount);\n require(manager.execTransactionFromModule(token, 0, data, Enum.Operation.Call));\n }\n }\n\n function isUnderLimit(address token, uint256 amount)\n internal\n returns (bool)\n {\n DailyLimit storage dailyLimit = dailyLimits[token];\n if (today() > dailyLimit.lastDay) {\n dailyLimit.lastDay = today();\n dailyLimit.spentToday = 0;\n }\n if ( dailyLimit.spentToday + amount <= dailyLimit.dailyLimit\n && dailyLimit.spentToday + amount > dailyLimit.spentToday)\n return true;\n return false;\n }\n\n /// @dev Returns last midnight as Unix timestamp.\n /// @return Unix timestamp.\n function today()\n public\n view\n returns (uint)\n {\n return now - (now % 1 days);\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", "exportedSymbols": { "DailyLimitModule": [ - 1694 + 1973 ] }, - "id": 1695, + "id": 1974, "nodeType": "SourceUnit", "nodes": [ { - "id": 1406, + "id": 1742, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:10" + "src": "0:23:17" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 1407, + "id": 1743, "nodeType": "ImportDirective", - "scope": 1695, - "sourceUnit": 622, - "src": "24:23:10", + "scope": 1974, + "sourceUnit": 751, + "src": "24:23:17", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 1408, + "id": 1744, "nodeType": "ImportDirective", - "scope": 1695, - "sourceUnit": 972, - "src": "48:30:10", + "scope": 1974, + "sourceUnit": 1101, + "src": "48:30:17", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 1409, + "id": 1745, "nodeType": "ImportDirective", - "scope": 1695, - "sourceUnit": 1344, - "src": "79:29:10", + "scope": 1974, + "sourceUnit": 1473, + "src": "79:29:17", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 1410, + "id": 1746, "nodeType": "ImportDirective", - "scope": 1695, - "sourceUnit": 7, - "src": "109:21:10", + "scope": 1974, + "sourceUnit": 31, + "src": "109:21:17", "symbolAliases": [], "unitAlias": "" }, @@ -247,46 +233,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1411, + "id": 1747, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "325:6:10", + "referencedDeclaration": 750, + "src": "325:6:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, - "id": 1412, + "id": 1748, "nodeType": "InheritanceSpecifier", - "src": "325:6:10" + "src": "325:6:17" } ], "contractDependencies": [ - 580, - 621, - 1359 + 652, + 750, + 1619 ], "contractKind": "contract", "documentation": "@title Daily Limit Module - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n @author Stefan George - ", "fullyImplemented": true, - "id": 1694, + "id": 1973, "linearizedBaseContracts": [ - 1694, - 621, - 580, - 1359 + 1973, + 750, + 652, + 1619 ], "name": "DailyLimitModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 1415, + "id": 1751, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 1694, - "src": "339:50:10", + "scope": 1973, + "src": "339:50:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -294,10 +280,10 @@ "typeString": "string" }, "typeName": { - "id": 1413, + "id": 1749, "name": "string", "nodeType": "ElementaryTypeName", - "src": "339:6:10", + "src": "339:6:17", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -306,14 +292,14 @@ "value": { "argumentTypes": null, "hexValue": "4461696c79204c696d6974204d6f64756c65", - "id": 1414, + "id": 1750, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "369:20:10", + "src": "369:20:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_821ea27acfbc77b49f7a021dbe2eb92017d46b8bdda0bff9901cbc8ee143ceb3", @@ -325,11 +311,11 @@ }, { "constant": true, - "id": 1418, + "id": 1754, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 1694, - "src": "395:40:10", + "scope": 1973, + "src": "395:40:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -337,10 +323,10 @@ "typeString": "string" }, "typeName": { - "id": 1416, + "id": 1752, "name": "string", "nodeType": "ElementaryTypeName", - "src": "395:6:10", + "src": "395:6:17", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -349,14 +335,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 1417, + "id": 1753, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "428:7:10", + "src": "428:7:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -366,89 +352,46 @@ }, "visibility": "public" }, - { - "constant": true, - "id": 1421, - "name": "TRANSFER_FUNCTION_IDENTIFIER", - "nodeType": "VariableDeclaration", - "scope": 1694, - "src": "441:67:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1419, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "441:6:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "a9059cbb", - "id": 1420, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "495:13:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_abce0605a16ff5e998983a0af570b8ad942bb11e305eb20ae3ada0a3be24eb97", - "typeString": "literal_string (contains invalid UTF-8 sequence at position 0)" - }, - "value": null - }, - "visibility": "public" - }, { "constant": false, - "id": 1425, + "id": 1758, "name": "dailyLimits", "nodeType": "VariableDeclaration", - "scope": 1694, - "src": "586:50:10", + "scope": 1973, + "src": "513:50:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1765_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "typeName": { - "id": 1424, + "id": 1757, "keyType": { - "id": 1422, + "id": 1755, "name": "address", "nodeType": "ElementaryTypeName", - "src": "595:7:10", + "src": "522:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "586:31:10", + "src": "513:31:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1765_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "valueType": { "contractScope": null, - "id": 1423, + "id": 1756, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1432, - "src": "606:10:10", + "referencedDeclaration": 1765, + "src": "533:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } } @@ -458,15 +401,15 @@ }, { "canonicalName": "DailyLimitModule.DailyLimit", - "id": 1432, + "id": 1765, "members": [ { "constant": false, - "id": 1427, + "id": 1760, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1432, - "src": "671:18:10", + "scope": 1765, + "src": "598:18:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -474,10 +417,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1426, + "id": 1759, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "671:7:10", + "src": "598:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -488,11 +431,11 @@ }, { "constant": false, - "id": 1429, + "id": 1762, "name": "spentToday", "nodeType": "VariableDeclaration", - "scope": 1432, - "src": "699:18:10", + "scope": 1765, + "src": "626:18:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -500,10 +443,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1428, + "id": 1761, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "699:7:10", + "src": "626:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -514,11 +457,11 @@ }, { "constant": false, - "id": 1431, + "id": 1764, "name": "lastDay", "nodeType": "VariableDeclaration", - "scope": 1432, - "src": "727:15:10", + "scope": 1765, + "src": "654:15:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -526,10 +469,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1430, + "id": 1763, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "727:7:10", + "src": "654:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -541,15 +484,15 @@ ], "name": "DailyLimit", "nodeType": "StructDefinition", - "scope": 1694, - "src": "643:106:10", + "scope": 1973, + "src": "570:106:17", "visibility": "public" }, { "body": { - "id": 1467, + "id": 1800, "nodeType": "Block", - "src": "1067:146:10", + "src": "994:146:17", "statements": [ { "expression": { @@ -557,18 +500,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1441, + "id": 1774, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "1077:10:10", + "referencedDeclaration": 749, + "src": "1004:10:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1442, + "id": 1775, "isConstant": false, "isLValue": false, "isPure": false, @@ -576,21 +519,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1077:12:10", + "src": "1004:12:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1443, + "id": 1776, "nodeType": "ExpressionStatement", - "src": "1077:12:10" + "src": "1004:12:17" }, { "body": { "expression": { "argumentTypes": null, - "id": 1464, + "id": 1797, "isConstant": false, "isLValue": false, "isPure": false, @@ -601,42 +544,42 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1455, + "id": 1788, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "1155:11:10", + "referencedDeclaration": 1758, + "src": "1082:11:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1765_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1459, + "id": 1792, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1456, + "id": 1789, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1435, - "src": "1167:6:10", + "referencedDeclaration": 1768, + "src": "1094:6:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1458, + "id": 1791, "indexExpression": { "argumentTypes": null, - "id": 1457, + "id": 1790, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1445, - "src": "1174:1:10", + "referencedDeclaration": 1778, + "src": "1101:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -647,7 +590,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1167:9:10", + "src": "1094:9:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -658,21 +601,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1155:22:10", + "src": "1082:22:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1460, + "id": 1793, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1427, - "src": "1155:33:10", + "referencedDeclaration": 1760, + "src": "1082:33:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -684,26 +627,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1461, + "id": 1794, "name": "_dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1438, - "src": "1191:12:10", + "referencedDeclaration": 1771, + "src": "1118:12:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1463, + "id": 1796, "indexExpression": { "argumentTypes": null, - "id": 1462, + "id": 1795, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1445, - "src": "1204:1:10", + "referencedDeclaration": 1778, + "src": "1131:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -714,21 +657,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1191:15:10", + "src": "1118:15:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1155:51:10", + "src": "1082:51:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1465, + "id": 1798, "nodeType": "ExpressionStatement", - "src": "1155:51:10" + "src": "1082:51:17" }, "condition": { "argumentTypes": null, @@ -736,19 +679,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1451, + "id": 1784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1448, + "id": 1781, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1445, - "src": "1119:1:10", + "referencedDeclaration": 1778, + "src": "1046:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -760,18 +703,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1449, + "id": 1782, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1435, - "src": "1123:6:10", + "referencedDeclaration": 1768, + "src": "1050:6:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1450, + "id": 1783, "isConstant": false, "isLValue": false, "isPure": false, @@ -779,31 +722,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1123:13:10", + "src": "1050:13:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:17:10", + "src": "1046:17:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1466, + "id": 1799, "initializationExpression": { "assignments": [ - 1445 + 1778 ], "declarations": [ { "constant": false, - "id": 1445, + "id": 1778, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1468, - "src": "1104:9:10", + "scope": 1801, + "src": "1031:9:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -811,10 +754,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1444, + "id": 1777, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1104:7:10", + "src": "1031:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -824,18 +767,18 @@ "visibility": "internal" } ], - "id": 1447, + "id": 1780, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1446, + "id": 1779, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1116:1:10", + "src": "1043:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -844,12 +787,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1104:13:10" + "src": "1031:13:17" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1453, + "id": 1786, "isConstant": false, "isLValue": false, "isPure": false, @@ -857,15 +800,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1138:3:10", + "src": "1065:3:17", "subExpression": { "argumentTypes": null, - "id": 1452, + "id": 1785, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1445, - "src": "1138:1:10", + "referencedDeclaration": 1778, + "src": "1065:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -876,17 +819,17 @@ "typeString": "uint256" } }, - "id": 1454, + "id": 1787, "nodeType": "ExpressionStatement", - "src": "1138:3:10" + "src": "1065:3:17" }, "nodeType": "ForStatement", - "src": "1099:107:10" + "src": "1026:107:17" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param tokens List of token addresses. Ether is represented with address 0x0.\n @param _dailyLimits List of daily limits in smalles units (e.g. Wei for Ether).", - "id": 1468, + "id": 1801, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -894,16 +837,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 1439, + "id": 1772, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1435, + "id": 1768, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 1468, - "src": "1006:16:10", + "scope": 1801, + "src": "933:16:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -912,19 +855,19 @@ }, "typeName": { "baseType": { - "id": 1433, + "id": 1766, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1006:7:10", + "src": "933:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1434, + "id": 1767, "length": null, "nodeType": "ArrayTypeName", - "src": "1006:9:10", + "src": "933:9:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -935,11 +878,11 @@ }, { "constant": false, - "id": 1438, + "id": 1771, "name": "_dailyLimits", "nodeType": "VariableDeclaration", - "scope": 1468, - "src": "1024:22:10", + "scope": 1801, + "src": "951:22:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -948,19 +891,19 @@ }, "typeName": { "baseType": { - "id": 1436, + "id": 1769, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1024:7:10", + "src": "951:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1437, + "id": 1770, "length": null, "nodeType": "ArrayTypeName", - "src": "1024:9:10", + "src": "951:9:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -970,31 +913,31 @@ "visibility": "internal" } ], - "src": "1005:42:10" + "src": "932:42:17" }, "payable": false, "returnParameters": { - "id": 1440, + "id": 1773, "nodeType": "ParameterList", "parameters": [], - "src": "1067:0:10" + "src": "994:0:17" }, - "scope": 1694, - "src": "991:222:10", + "scope": 1973, + "src": "918:222:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1484, + "id": 1817, "nodeType": "Block", - "src": "1540:59:10", + "src": "1467:59:17", "statements": [ { "expression": { "argumentTypes": null, - "id": 1482, + "id": 1815, "isConstant": false, "isLValue": false, "isPure": false, @@ -1005,26 +948,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1477, + "id": 1810, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "1550:11:10", + "referencedDeclaration": 1758, + "src": "1477:11:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1765_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1479, + "id": 1812, "indexExpression": { "argumentTypes": null, - "id": 1478, + "id": 1811, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1470, - "src": "1562:5:10", + "referencedDeclaration": 1803, + "src": "1489:5:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1035,21 +978,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1550:18:10", + "src": "1477:18:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1480, + "id": 1813, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1427, - "src": "1550:29:10", + "referencedDeclaration": 1760, + "src": "1477:29:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1059,68 +1002,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1481, + "id": 1814, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "1582:10:10", + "referencedDeclaration": 1805, + "src": "1509:10:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1550:42:10", + "src": "1477:42:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1483, + "id": 1816, "nodeType": "ExpressionStatement", - "src": "1550:42:10" + "src": "1477:42:17" } ] }, "documentation": "@dev Allows to update the daily limit for a specified token. This can only be done via a Safe transaction.\n @param token Token contract address.\n @param dailyLimit Daily limit in smallest token unit.", - "id": 1485, + "id": 1818, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1475, + "id": 1808, "modifierName": { "argumentTypes": null, - "id": 1474, + "id": 1807, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "1525:10:10", + "referencedDeclaration": 730, + "src": "1452:10:17", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1525:10:10" + "src": "1452:10:17" } ], "name": "changeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1473, + "id": 1806, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1470, + "id": 1803, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1485, - "src": "1467:13:10", + "scope": 1818, + "src": "1394:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1128,10 +1071,10 @@ "typeString": "address" }, "typeName": { - "id": 1469, + "id": 1802, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1467:7:10", + "src": "1394:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1142,11 +1085,11 @@ }, { "constant": false, - "id": 1472, + "id": 1805, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1485, - "src": "1482:18:10", + "scope": 1818, + "src": "1409:18:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1154,10 +1097,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1471, + "id": 1804, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1482:7:10", + "src": "1409:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1167,26 +1110,26 @@ "visibility": "internal" } ], - "src": "1466:35:10" + "src": "1393:35:17" }, "payable": false, "returnParameters": { - "id": 1476, + "id": 1809, "nodeType": "ParameterList", "parameters": [], - "src": "1540:0:10" + "src": "1467:0:17" }, - "scope": 1694, - "src": "1441:158:10", + "scope": 1973, + "src": "1368:158:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1605, + "id": 1902, "nodeType": "Block", - "src": "1706:1218:10", + "src": "1979:695:17", "statements": [ { "expression": { @@ -1197,12 +1140,28 @@ "arguments": [ { "argumentTypes": null, - "id": 1501, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1487, - "src": "1831:6:10", + "expression": { + "argumentTypes": null, + "id": 1832, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2598, + "src": "2104:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2104:10:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1221,14 +1180,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1498, + "id": 1829, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "1814:7:10", + "referencedDeclaration": 717, + "src": "2087:7:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } } @@ -1236,22 +1195,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } ], - "id": 1497, + "id": 1828, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "1801:12:10", + "referencedDeclaration": 1472, + "src": "2074:12:17", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1343_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1472_$", "typeString": "type(contract OwnerManager)" } }, - "id": 1499, + "id": 1830, "isConstant": false, "isLValue": false, "isPure": false, @@ -1259,27 +1218,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1801:21:10", + "src": "2074:21:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1343", + "typeIdentifier": "t_contract$_OwnerManager_$1472", "typeString": "contract OwnerManager" } }, - "id": 1500, + "id": 1831, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1293, - "src": "1801:29:10", + "referencedDeclaration": 1422, + "src": "2074:29:17", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 1502, + "id": 1834, "isConstant": false, "isLValue": false, "isPure": false, @@ -1287,7 +1246,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1801:37:10", + "src": "2074:41:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1301,21 +1260,21 @@ "typeString": "bool" } ], - "id": 1496, + "id": 1827, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1793:7:10", + "referencedDeclaration": 2601, + "src": "2066:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1503, + "id": 1835, "isConstant": false, "isLValue": false, "isPure": false, @@ -1323,15 +1282,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1793:46:10", + "src": "2066:50:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1504, + "id": 1836, "nodeType": "ExpressionStatement", - "src": "1793:46:10" + "src": "2066:50:17" }, { "expression": { @@ -1340,287 +1299,48 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 1522, + "id": 1840, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1506, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1493, - "src": "1924:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1924:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1939:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1924:16:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1510, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1491, - "src": "1944:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1952:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1944:9:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1924:29:10", + "id": 1838, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2134:2:17", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", - "operator": "||", + "operator": "!=", "rightExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1521, + "hexValue": "30", + "id": 1839, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1514, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1493, - "src": "1957:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1957:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1971:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1957:15:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1520, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1518, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1491, - "src": "1976:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1519, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1985:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1976:10:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1957:29:10", + "nodeType": "Literal", + "src": "2140:1:17", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "1924:62:10", + "src": "2134:7:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1634,21 +1354,21 @@ "typeString": "bool" } ], - "id": 1505, + "id": 1837, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1916:7:10", + "referencedDeclaration": 2601, + "src": "2126:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1523, + "id": 1841, "isConstant": false, "isLValue": false, "isPure": false, @@ -1656,160 +1376,332 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1916:71:10", + "src": "2126:16:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1524, + "id": 1842, "nodeType": "ExpressionStatement", - "src": "1916:71:10" + "src": "2126:16:17" }, { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1526, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 1606, - "src": "1997:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1997:7:10", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1844, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2160:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1845, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2169:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2160:10:17", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1843, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2601, + 2602 + ], + "referencedDeclaration": 2601, + "src": "2152:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2152:19:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1848, + "nodeType": "ExpressionStatement", + "src": "2152:19:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1851, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1820, + "src": "2266:5:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1852, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2273:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1850, + "name": "isUnderLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "2253:12:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 1853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2253:27:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1849, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2601, + 2602 + ], + "referencedDeclaration": 2601, + "src": "2245:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2245:36:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1855, + "nodeType": "ExpressionStatement", + "src": "2245:36:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 1861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1856, + "name": "dailyLimits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1758, + "src": "2291:11:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1765_storage_$", + "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" + } + }, + "id": 1858, + "indexExpression": { + "argumentTypes": null, + "id": 1857, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1820, + "src": "2303:5:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2291:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage", + "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 1527, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "1997:13:10" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1529, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 1606, - "src": "2020:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1528, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2020:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1530, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2020:16:10" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1532, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1606, - "src": "2046:14:10", - "stateVariable": false, - "storageLocation": "default", + "id": 1859, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "spentToday", + "nodeType": "MemberAccess", + "referencedDeclaration": 1762, + "src": "2291:29:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "typeName": { - "id": 1531, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2046:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 1860, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2324:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2291:39:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "id": 1533, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2046:14:10" + }, + "id": 1862, + "nodeType": "ExpressionStatement", + "src": "2291:39:17" }, { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 1537, + "id": 1865, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1534, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1493, - "src": "2074:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2074:11:10", + "id": 1863, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1820, + "src": "2344:5:17", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", @@ -1817,14 +1709,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1536, + "id": 1864, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2089:1:10", + "src": "2353:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1832,159 +1724,156 @@ }, "value": "0" }, - "src": "2074:16:10", + "src": "2344:10:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1565, + "id": 1900, "nodeType": "Block", - "src": "2195:413:10", + "src": "2466:202:17", "statements": [ { - "expression": { - "argumentTypes": null, - "id": 1553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1551, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "2209:5:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1552, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "2217:2:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2209:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1554, - "nodeType": "ExpressionStatement", - "src": "2209:10:10" - }, - { - "assignments": [], + "assignments": [ + 1880 + ], "declarations": [ { "constant": false, - "id": 1556, - "name": "functionIdentifier", + "id": 1880, + "name": "data", "nodeType": "VariableDeclaration", - "scope": 1606, - "src": "2233:25:10", + "scope": 1903, + "src": "2480:17:17", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" }, "typeName": { - "id": 1555, - "name": "bytes4", + "id": 1879, + "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2233:6:10", + "src": "2480:5:17", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], - "id": 1557, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2233:25:10" - }, - { - "externalReferences": [ - { - "functionIdentifier": { - "declaration": 1556, - "isOffset": false, - "isSlot": false, - "src": "2367:18:10", - "valueSize": 1 + "id": 1887, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2524:27:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + }, + { + "argumentTypes": null, + "id": 1884, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2553:2:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1885, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2557:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1881, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2585, + "src": "2500:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2500:23:17", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (string memory) pure returns (bytes memory)" } }, - { - "data": { - "declaration": 1493, - "isOffset": false, - "isSlot": false, - "src": "2399:4:10", - "valueSize": 1 - } - }, - { - "receiver": { - "declaration": 1529, - "isOffset": false, - "isSlot": false, - "src": "2428:8:10", - "valueSize": 1 - } - }, - { - "amount": { - "declaration": 1532, - "isOffset": false, - "isSlot": false, - "src": "2479:6:10", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1493, - "isOffset": false, - "isSlot": false, - "src": "2450:4:10", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1493, - "isOffset": false, - "isSlot": false, - "src": "2499:4:10", - "valueSize": 1 - } + "id": 1886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2500:64:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } - ], - "id": 1558, - "nodeType": "InlineAssembly", - "operations": "{\n functionIdentifier := mload(add(data, 0x20))\n receiver := mload(add(data, 0x24))\n amount := mload(add(data, 0x44))\n}", - "src": "2340:205:10" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2480:84:17" }, { "expression": { @@ -1992,44 +1881,152 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "arguments": [ + { + "argumentTypes": null, + "id": 1891, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1820, + "src": "2620:5:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 1892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2627:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "id": 1893, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1880, + "src": "2630:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1894, + "name": "Enum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30, + "src": "2636:4:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeString": "type(contract Enum)" + } + }, + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "Operation", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "2636:14:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeString": "type(enum Enum.Operation)" + } + }, + "id": 1896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2636:19:17", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + ], + "expression": { + "argumentTypes": null, + "id": 1889, + "name": "manager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 717, + "src": "2586:7:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ModuleManager_$1100", + "typeString": "contract ModuleManager" + } + }, + "id": 1890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "execTransactionFromModule", + "nodeType": "MemberAccess", + "referencedDeclaration": 927, + "src": "2586:33:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" + } }, - "id": 1562, + "id": 1897, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1560, - "name": "functionIdentifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1556, - "src": "2546:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1561, - "name": "TRANSFER_FUNCTION_IDENTIFIER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "2568:28:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "2546:50:10", + "names": [], + "nodeType": "FunctionCall", + "src": "2586:70:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2043,21 +2040,21 @@ "typeString": "bool" } ], - "id": 1559, + "id": 1888, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2538:7:10", + "referencedDeclaration": 2601, + "src": "2578:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1563, + "id": 1898, "isConstant": false, "isLValue": false, "isPure": false, @@ -2065,1016 +2062,230 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2538:59:10", + "src": "2578:79:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1564, + "id": 1899, "nodeType": "ExpressionStatement", - "src": "2538:59:10" + "src": "2578:79:17" } ] }, - "id": 1566, + "id": 1901, "nodeType": "IfStatement", - "src": "2070:538:10", + "src": "2340:328:17", "trueBody": { - "id": 1550, + "id": 1878, "nodeType": "Block", - "src": "2092:89:10", + "src": "2356:104:17", "statements": [ { "expression": { "argumentTypes": null, - "id": 1540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1538, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "2106:5:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1539, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2114:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2106:9:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1541, - "nodeType": "ExpressionStatement", - "src": "2106:9:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 1544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1542, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1529, - "src": "2129:8:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1543, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "2140:2:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2129:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1545, - "nodeType": "ExpressionStatement", - "src": "2129:13:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1546, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "2156:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1547, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1491, - "src": "2165:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2156:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1549, - "nodeType": "ExpressionStatement", - "src": "2156:14:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1568, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1529, - "src": "2625:8:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1569, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2637:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2625:13:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1567, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2399, - 2400 - ], - "referencedDeclaration": 2399, - "src": "2617:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2617:22:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1572, - "nodeType": "ExpressionStatement", - "src": "2617:22:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1574, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "2657:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2666:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2657:10:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1573, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2399, - 2400 - ], - "referencedDeclaration": 2399, - "src": "2649:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2649:19:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1578, - "nodeType": "ExpressionStatement", - "src": "2649:19:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1581, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "2763:5:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1582, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "2770:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ + "arguments": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1580, - "name": "isUnderLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1680, - "src": "2750:12:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 1583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2750:27:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1579, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2399, - 2400 - ], - "referencedDeclaration": 2399, - "src": "2742:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2742:36:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1585, - "nodeType": "ExpressionStatement", - "src": "2742:36:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 1591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1586, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "2788:11:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 1588, - "indexExpression": { - "argumentTypes": null, - "id": 1587, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "2800:5:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2788:18:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "id": 1589, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 1429, - "src": "2788:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 1590, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "2821:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2788:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1592, - "nodeType": "ExpressionStatement", - "src": "2788:39:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1596, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "2879:2:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1597, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1491, - "src": "2883:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1598, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1493, - "src": "2890:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "expression": { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1869, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2412:2:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1870, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2416:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 1871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2424:2:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1872, + "name": "Enum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30, + "src": "2428:4:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeString": "type(contract Enum)" + } + }, + "id": 1873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "Operation", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "2428:14:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeString": "type(enum Enum.Operation)" + } + }, + "id": 1874, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2428:19:17", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + } + ], "expression": { - "argumentTypes": null, - "id": 1599, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "2896:4:10", + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + ], + "expression": { + "argumentTypes": null, + "id": 1867, + "name": "manager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 717, + "src": "2378:7:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ModuleManager_$1100", + "typeString": "contract ModuleManager" + } + }, + "id": 1868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "execTransactionFromModule", + "nodeType": "MemberAccess", + "referencedDeclaration": 927, + "src": "2378:33:17", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$6_$", - "typeString": "type(contract Enum)" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 1600, + "id": 1875, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "2896:14:10", + "names": [], + "nodeType": "FunctionCall", + "src": "2378:70:17", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$5_$", - "typeString": "type(enum Enum.Operation)" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 1601, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2896:19:10", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" } ], "expression": { - "argumentTypes": null, - "id": 1594, - "name": "manager", + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1866, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "2845:7:10", + "overloadedDeclarations": [ + 2601, + 2602 + ], + "referencedDeclaration": 2601, + "src": "2370:7:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 1595, + "id": 1876, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 798, - "src": "2845:33:10", + "names": [], + "nodeType": "FunctionCall", + "src": "2370:79:17", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 1602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2845:71:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "id": 1877, + "nodeType": "ExpressionStatement", + "src": "2370:79:17" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1593, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2399, - 2400 - ], - "referencedDeclaration": 2399, - "src": "2837:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2837:80:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1604, - "nodeType": "ExpressionStatement", - "src": "2837:80:10" + ] + } } ] }, - "documentation": null, - "id": 1606, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeInternal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1487, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1606, - "src": "1630:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1630:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1489, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1606, - "src": "1646:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1488, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1646:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1491, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1606, - "src": "1658:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1490, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1658:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1493, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1606, - "src": "1673:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1492, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1673:5:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1629:55:10" - }, - "payable": false, - "returnParameters": { - "id": 1495, - "nodeType": "ParameterList", - "parameters": [], - "src": "1706:0:10" - }, - "scope": 1694, - "src": "1605:1319:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1623, - "nodeType": "Block", - "src": "3393:61:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1616, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "3419:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3419:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1618, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1608, - "src": "3431:2:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1619, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1610, - "src": "3435:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1620, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1612, - "src": "3442:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1615, - "name": "executeInternal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "3403:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 1621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3403:44:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1622, - "nodeType": "ExpressionStatement", - "src": "3403:44:10" - } - ] - }, - "documentation": "@dev Returns if Safe transaction is a valid daily limit transaction.\n @param to Receiver address in case of Ether transfer, token address in case of a token transfer.\n @param value Ether value in case of an Ether transfer.\n @param data Encoded token transfer. Empty in case of Ether transfer.\n @return Returns if transaction can be executed.", - "id": 1624, + "documentation": "@dev Returns if Safe transaction is a valid daily limit transaction.\n @param token Address of the token that should be transfered (0 for Ether)\n @param to Address to which the tokens should be transfered\n @param amount Amount of tokens (or Ether) that should be transfered\n @return Returns if transaction can be executed.", + "id": 1903, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3082,16 +2293,16 @@ "name": "executeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1613, + "id": 1825, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1608, - "name": "to", + "id": 1820, + "name": "token", "nodeType": "VariableDeclaration", - "scope": 1624, - "src": "3335:10:10", + "scope": 1903, + "src": "1917:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3099,10 +2310,10 @@ "typeString": "address" }, "typeName": { - "id": 1607, + "id": 1819, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3335:7:10", + "src": "1917:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3113,25 +2324,25 @@ }, { "constant": false, - "id": 1610, - "name": "value", + "id": 1822, + "name": "to", "nodeType": "VariableDeclaration", - "scope": 1624, - "src": "3347:13:10", + "scope": 1903, + "src": "1932:10:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 1609, - "name": "uint256", + "id": 1821, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "3347:7:10", + "src": "1932:7:17", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, @@ -3139,79 +2350,79 @@ }, { "constant": false, - "id": 1612, - "name": "data", + "id": 1824, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1624, - "src": "3362:10:10", + "scope": 1903, + "src": "1944:14:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1611, - "name": "bytes", + "id": 1823, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3362:5:10", + "src": "1944:7:17", "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "3334:39:10" + "src": "1916:43:17" }, "payable": false, "returnParameters": { - "id": 1614, + "id": 1826, "nodeType": "ParameterList", "parameters": [], - "src": "3393:0:10" + "src": "1979:0:17" }, - "scope": 1694, - "src": "3308:146:10", + "scope": 1973, + "src": "1890:784:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1679, + "id": 1958, "nodeType": "Block", - "src": "3557:391:10", + "src": "2777:391:17", "statements": [ { "assignments": [ - 1634 + 1913 ], "declarations": [ { "constant": false, - "id": 1634, + "id": 1913, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1680, - "src": "3567:29:10", + "scope": 1959, + "src": "2787:29:17", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" }, "typeName": { "contractScope": null, - "id": 1633, + "id": 1912, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1432, - "src": "3567:10:10", + "referencedDeclaration": 1765, + "src": "2787:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } }, @@ -3219,31 +2430,31 @@ "visibility": "internal" } ], - "id": 1638, + "id": 1917, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1635, + "id": 1914, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "3599:11:10", + "referencedDeclaration": 1758, + "src": "2819:11:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1765_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1637, + "id": 1916, "indexExpression": { "argumentTypes": null, - "id": 1636, + "id": 1915, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1626, - "src": "3611:5:10", + "referencedDeclaration": 1905, + "src": "2831:5:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3254,14 +2465,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3599:18:10", + "src": "2819:18:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "3567:50:10" + "src": "2787:50:17" }, { "condition": { @@ -3270,7 +2481,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1643, + "id": 1922, "isConstant": false, "isLValue": false, "isPure": false, @@ -3280,18 +2491,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1639, + "id": 1918, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1693, - "src": "3631:5:10", + "referencedDeclaration": 1972, + "src": "2851:5:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 1640, + "id": 1919, "isConstant": false, "isLValue": false, "isPure": false, @@ -3299,7 +2510,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3631:7:10", + "src": "2851:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3311,50 +2522,50 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1641, + "id": 1920, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "3641:10:10", + "referencedDeclaration": 1913, + "src": "2861:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 1642, + "id": 1921, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 1431, - "src": "3641:18:10", + "referencedDeclaration": 1764, + "src": "2861:18:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3631:28:10", + "src": "2851:28:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1658, + "id": 1937, "nodeType": "IfStatement", - "src": "3627:126:10", + "src": "2847:126:17", "trueBody": { - "id": 1657, + "id": 1936, "nodeType": "Block", - "src": "3661:92:10", + "src": "2881:92:17", "statements": [ { "expression": { "argumentTypes": null, - "id": 1649, + "id": 1928, "isConstant": false, "isLValue": false, "isPure": false, @@ -3363,26 +2574,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1644, + "id": 1923, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "3675:10:10", + "referencedDeclaration": 1913, + "src": "2895:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 1646, + "id": 1925, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 1431, - "src": "3675:18:10", + "referencedDeclaration": 1764, + "src": "2895:18:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3395,18 +2606,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1647, + "id": 1926, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1693, - "src": "3696:5:10", + "referencedDeclaration": 1972, + "src": "2916:5:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 1648, + "id": 1927, "isConstant": false, "isLValue": false, "isPure": false, @@ -3414,26 +2625,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3696:7:10", + "src": "2916:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3675:28:10", + "src": "2895:28:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1650, + "id": 1929, "nodeType": "ExpressionStatement", - "src": "3675:28:10" + "src": "2895:28:17" }, { "expression": { "argumentTypes": null, - "id": 1655, + "id": 1934, "isConstant": false, "isLValue": false, "isPure": false, @@ -3442,26 +2653,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1651, + "id": 1930, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "3717:10:10", + "referencedDeclaration": 1913, + "src": "2937:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 1653, + "id": 1932, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1429, - "src": "3717:21:10", + "referencedDeclaration": 1762, + "src": "2937:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3472,14 +2683,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1654, + "id": 1933, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3741:1:10", + "src": "2961:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3487,15 +2698,15 @@ }, "value": "0" }, - "src": "3717:25:10", + "src": "2937:25:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1656, + "id": 1935, "nodeType": "ExpressionStatement", - "src": "3717:25:10" + "src": "2937:25:17" } ] } @@ -3507,7 +2718,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1673, + "id": 1952, "isConstant": false, "isLValue": false, "isPure": false, @@ -3518,7 +2729,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1665, + "id": 1944, "isConstant": false, "isLValue": false, "isPure": false, @@ -3529,7 +2740,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1662, + "id": 1941, "isConstant": false, "isLValue": false, "isPure": false, @@ -3538,26 +2749,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1659, + "id": 1938, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "3769:10:10", + "referencedDeclaration": 1913, + "src": "2989:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 1660, + "id": 1939, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1429, - "src": "3769:21:10", + "referencedDeclaration": 1762, + "src": "2989:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3567,18 +2778,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 1661, + "id": 1940, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "3793:6:10", + "referencedDeclaration": 1907, + "src": "3013:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3769:30:10", + "src": "2989:30:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3590,32 +2801,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1663, + "id": 1942, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "3803:10:10", + "referencedDeclaration": 1913, + "src": "3023:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 1664, + "id": 1943, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1427, - "src": "3803:21:10", + "referencedDeclaration": 1760, + "src": "3023:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3769:55:10", + "src": "2989:55:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3629,7 +2840,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1672, + "id": 1951, "isConstant": false, "isLValue": false, "isPure": false, @@ -3640,7 +2851,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1669, + "id": 1948, "isConstant": false, "isLValue": false, "isPure": false, @@ -3649,26 +2860,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1666, + "id": 1945, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "3840:10:10", + "referencedDeclaration": 1913, + "src": "3060:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 1667, + "id": 1946, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1429, - "src": "3840:21:10", + "referencedDeclaration": 1762, + "src": "3060:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3678,18 +2889,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 1668, + "id": 1947, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "3864:6:10", + "referencedDeclaration": 1907, + "src": "3084:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3840:30:10", + "src": "3060:30:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3701,59 +2912,59 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1670, + "id": 1949, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "3873:10:10", + "referencedDeclaration": 1913, + "src": "3093:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 1671, + "id": 1950, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1429, - "src": "3873:21:10", + "referencedDeclaration": 1762, + "src": "3093:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3840:54:10", + "src": "3060:54:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3769:125:10", + "src": "2989:125:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1676, + "id": 1955, "nodeType": "IfStatement", - "src": "3762:157:10", + "src": "2982:157:17", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1674, + "id": 1953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3915:4:10", + "src": "3135:4:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3761,24 +2972,24 @@ }, "value": "true" }, - "functionReturnParameters": 1632, - "id": 1675, + "functionReturnParameters": 1911, + "id": 1954, "nodeType": "Return", - "src": "3908:11:10" + "src": "3128:11:17" } }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 1677, + "id": 1956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3936:5:10", + "src": "3156:5:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3786,15 +2997,15 @@ }, "value": "false" }, - "functionReturnParameters": 1632, - "id": 1678, + "functionReturnParameters": 1911, + "id": 1957, "nodeType": "Return", - "src": "3929:12:10" + "src": "3149:12:17" } ] }, "documentation": null, - "id": 1680, + "id": 1959, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3802,16 +3013,16 @@ "name": "isUnderLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1629, + "id": 1908, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1626, + "id": 1905, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1680, - "src": "3482:13:10", + "scope": 1959, + "src": "2702:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3819,10 +3030,10 @@ "typeString": "address" }, "typeName": { - "id": 1625, + "id": 1904, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3482:7:10", + "src": "2702:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3833,11 +3044,11 @@ }, { "constant": false, - "id": 1628, + "id": 1907, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1680, - "src": "3497:14:10", + "scope": 1959, + "src": "2717:14:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3845,10 +3056,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1627, + "id": 1906, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3497:7:10", + "src": "2717:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3858,20 +3069,20 @@ "visibility": "internal" } ], - "src": "3481:31:10" + "src": "2701:31:17" }, "payable": false, "returnParameters": { - "id": 1632, + "id": 1911, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1631, + "id": 1910, "name": "", "nodeType": "VariableDeclaration", - "scope": 1680, - "src": "3547:4:10", + "scope": 1959, + "src": "2767:4:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3879,10 +3090,10 @@ "typeString": "bool" }, "typeName": { - "id": 1630, + "id": 1909, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3547:4:10", + "src": "2767:4:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3892,19 +3103,19 @@ "visibility": "internal" } ], - "src": "3546:6:10" + "src": "2766:6:17" }, - "scope": 1694, - "src": "3460:488:10", + "scope": 1973, + "src": "2680:488:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1692, + "id": 1971, "nodeType": "Block", - "src": "4112:44:10", + "src": "3332:44:17", "statements": [ { "expression": { @@ -3913,19 +3124,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1690, + "id": 1969, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1685, + "id": 1964, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2398, - "src": "4129:3:10", + "referencedDeclaration": 2600, + "src": "3349:3:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3942,19 +3153,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1688, + "id": 1967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1686, + "id": 1965, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2398, - "src": "4136:3:10", + "referencedDeclaration": 2600, + "src": "3356:3:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3965,14 +3176,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1687, + "id": 1966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4142:6:10", + "src": "3362:6:17", "subdenomination": "days", "typeDescriptions": { "typeIdentifier": "t_rational_86400_by_1", @@ -3980,41 +3191,41 @@ }, "value": "1" }, - "src": "4136:12:10", + "src": "3356:12:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1689, + "id": 1968, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4135:14:10", + "src": "3355:14:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4129:20:10", + "src": "3349:20:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1684, - "id": 1691, + "functionReturnParameters": 1963, + "id": 1970, "nodeType": "Return", - "src": "4122:27:10" + "src": "3342:27:17" } ] }, "documentation": "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp.", - "id": 1693, + "id": 1972, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4022,23 +3233,23 @@ "name": "today", "nodeType": "FunctionDefinition", "parameters": { - "id": 1681, + "id": 1960, "nodeType": "ParameterList", "parameters": [], - "src": "4054:2:10" + "src": "3274:2:17" }, "payable": false, "returnParameters": { - "id": 1684, + "id": 1963, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1683, + "id": 1962, "name": "", "nodeType": "VariableDeclaration", - "scope": 1693, - "src": "4102:4:10", + "scope": 1972, + "src": "3322:4:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4046,10 +3257,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1682, + "id": 1961, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4102:4:10", + "src": "3322:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4059,82 +3270,82 @@ "visibility": "internal" } ], - "src": "4101:6:10" + "src": "3321:6:17" }, - "scope": 1694, - "src": "4040:116:10", + "scope": 1973, + "src": "3260:116:17", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1695, - "src": "296:3862:10" + "scope": 1974, + "src": "296:3082:17" } ], - "src": "0:4159:10" + "src": "0:3379:17" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", "exportedSymbols": { "DailyLimitModule": [ - 1694 + 1973 ] }, - "id": 1695, + "id": 1974, "nodeType": "SourceUnit", "nodes": [ { - "id": 1406, + "id": 1742, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:10" + "src": "0:23:17" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 1407, + "id": 1743, "nodeType": "ImportDirective", - "scope": 1695, - "sourceUnit": 622, - "src": "24:23:10", + "scope": 1974, + "sourceUnit": 751, + "src": "24:23:17", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 1408, + "id": 1744, "nodeType": "ImportDirective", - "scope": 1695, - "sourceUnit": 972, - "src": "48:30:10", + "scope": 1974, + "sourceUnit": 1101, + "src": "48:30:17", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 1409, + "id": 1745, "nodeType": "ImportDirective", - "scope": 1695, - "sourceUnit": 1344, - "src": "79:29:10", + "scope": 1974, + "sourceUnit": 1473, + "src": "79:29:17", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 1410, + "id": 1746, "nodeType": "ImportDirective", - "scope": 1695, - "sourceUnit": 7, - "src": "109:21:10", + "scope": 1974, + "sourceUnit": 31, + "src": "109:21:17", "symbolAliases": [], "unitAlias": "" }, @@ -4144,46 +3355,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1411, + "id": 1747, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "325:6:10", + "referencedDeclaration": 750, + "src": "325:6:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, - "id": 1412, + "id": 1748, "nodeType": "InheritanceSpecifier", - "src": "325:6:10" + "src": "325:6:17" } ], "contractDependencies": [ - 580, - 621, - 1359 + 652, + 750, + 1619 ], "contractKind": "contract", "documentation": "@title Daily Limit Module - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n @author Stefan George - ", "fullyImplemented": true, - "id": 1694, + "id": 1973, "linearizedBaseContracts": [ - 1694, - 621, - 580, - 1359 + 1973, + 750, + 652, + 1619 ], "name": "DailyLimitModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 1415, + "id": 1751, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 1694, - "src": "339:50:10", + "scope": 1973, + "src": "339:50:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4191,10 +3402,10 @@ "typeString": "string" }, "typeName": { - "id": 1413, + "id": 1749, "name": "string", "nodeType": "ElementaryTypeName", - "src": "339:6:10", + "src": "339:6:17", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4203,14 +3414,14 @@ "value": { "argumentTypes": null, "hexValue": "4461696c79204c696d6974204d6f64756c65", - "id": 1414, + "id": 1750, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "369:20:10", + "src": "369:20:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_821ea27acfbc77b49f7a021dbe2eb92017d46b8bdda0bff9901cbc8ee143ceb3", @@ -4222,11 +3433,11 @@ }, { "constant": true, - "id": 1418, + "id": 1754, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 1694, - "src": "395:40:10", + "scope": 1973, + "src": "395:40:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4234,10 +3445,10 @@ "typeString": "string" }, "typeName": { - "id": 1416, + "id": 1752, "name": "string", "nodeType": "ElementaryTypeName", - "src": "395:6:10", + "src": "395:6:17", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4246,14 +3457,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 1417, + "id": 1753, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "428:7:10", + "src": "428:7:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -4263,89 +3474,46 @@ }, "visibility": "public" }, - { - "constant": true, - "id": 1421, - "name": "TRANSFER_FUNCTION_IDENTIFIER", - "nodeType": "VariableDeclaration", - "scope": 1694, - "src": "441:67:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1419, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "441:6:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "a9059cbb", - "id": 1420, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "495:13:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_abce0605a16ff5e998983a0af570b8ad942bb11e305eb20ae3ada0a3be24eb97", - "typeString": "literal_string (contains invalid UTF-8 sequence at position 0)" - }, - "value": null - }, - "visibility": "public" - }, { "constant": false, - "id": 1425, + "id": 1758, "name": "dailyLimits", "nodeType": "VariableDeclaration", - "scope": 1694, - "src": "586:50:10", + "scope": 1973, + "src": "513:50:17", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1765_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "typeName": { - "id": 1424, + "id": 1757, "keyType": { - "id": 1422, + "id": 1755, "name": "address", "nodeType": "ElementaryTypeName", - "src": "595:7:10", + "src": "522:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "586:31:10", + "src": "513:31:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1765_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "valueType": { "contractScope": null, - "id": 1423, + "id": 1756, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1432, - "src": "606:10:10", + "referencedDeclaration": 1765, + "src": "533:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } } @@ -4355,15 +3523,15 @@ }, { "canonicalName": "DailyLimitModule.DailyLimit", - "id": 1432, + "id": 1765, "members": [ { "constant": false, - "id": 1427, + "id": 1760, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1432, - "src": "671:18:10", + "scope": 1765, + "src": "598:18:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4371,10 +3539,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1426, + "id": 1759, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "671:7:10", + "src": "598:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4385,11 +3553,11 @@ }, { "constant": false, - "id": 1429, + "id": 1762, "name": "spentToday", "nodeType": "VariableDeclaration", - "scope": 1432, - "src": "699:18:10", + "scope": 1765, + "src": "626:18:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4397,10 +3565,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1428, + "id": 1761, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "699:7:10", + "src": "626:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4411,11 +3579,11 @@ }, { "constant": false, - "id": 1431, + "id": 1764, "name": "lastDay", "nodeType": "VariableDeclaration", - "scope": 1432, - "src": "727:15:10", + "scope": 1765, + "src": "654:15:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4423,10 +3591,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1430, + "id": 1763, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "727:7:10", + "src": "654:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4438,15 +3606,15 @@ ], "name": "DailyLimit", "nodeType": "StructDefinition", - "scope": 1694, - "src": "643:106:10", + "scope": 1973, + "src": "570:106:17", "visibility": "public" }, { "body": { - "id": 1467, + "id": 1800, "nodeType": "Block", - "src": "1067:146:10", + "src": "994:146:17", "statements": [ { "expression": { @@ -4454,18 +3622,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1441, + "id": 1774, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "1077:10:10", + "referencedDeclaration": 749, + "src": "1004:10:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1442, + "id": 1775, "isConstant": false, "isLValue": false, "isPure": false, @@ -4473,21 +3641,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1077:12:10", + "src": "1004:12:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1443, + "id": 1776, "nodeType": "ExpressionStatement", - "src": "1077:12:10" + "src": "1004:12:17" }, { "body": { "expression": { "argumentTypes": null, - "id": 1464, + "id": 1797, "isConstant": false, "isLValue": false, "isPure": false, @@ -4498,42 +3666,42 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1455, + "id": 1788, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "1155:11:10", + "referencedDeclaration": 1758, + "src": "1082:11:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1765_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1459, + "id": 1792, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1456, + "id": 1789, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1435, - "src": "1167:6:10", + "referencedDeclaration": 1768, + "src": "1094:6:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1458, + "id": 1791, "indexExpression": { "argumentTypes": null, - "id": 1457, + "id": 1790, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1445, - "src": "1174:1:10", + "referencedDeclaration": 1778, + "src": "1101:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4544,7 +3712,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1167:9:10", + "src": "1094:9:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4555,21 +3723,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1155:22:10", + "src": "1082:22:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1460, + "id": 1793, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1427, - "src": "1155:33:10", + "referencedDeclaration": 1760, + "src": "1082:33:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4581,26 +3749,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1461, + "id": 1794, "name": "_dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1438, - "src": "1191:12:10", + "referencedDeclaration": 1771, + "src": "1118:12:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1463, + "id": 1796, "indexExpression": { "argumentTypes": null, - "id": 1462, + "id": 1795, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1445, - "src": "1204:1:10", + "referencedDeclaration": 1778, + "src": "1131:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4611,21 +3779,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1191:15:10", + "src": "1118:15:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1155:51:10", + "src": "1082:51:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1465, + "id": 1798, "nodeType": "ExpressionStatement", - "src": "1155:51:10" + "src": "1082:51:17" }, "condition": { "argumentTypes": null, @@ -4633,19 +3801,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1451, + "id": 1784, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1448, + "id": 1781, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1445, - "src": "1119:1:10", + "referencedDeclaration": 1778, + "src": "1046:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4657,18 +3825,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1449, + "id": 1782, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1435, - "src": "1123:6:10", + "referencedDeclaration": 1768, + "src": "1050:6:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1450, + "id": 1783, "isConstant": false, "isLValue": false, "isPure": false, @@ -4676,31 +3844,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1123:13:10", + "src": "1050:13:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1119:17:10", + "src": "1046:17:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1466, + "id": 1799, "initializationExpression": { "assignments": [ - 1445 + 1778 ], "declarations": [ { "constant": false, - "id": 1445, + "id": 1778, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1468, - "src": "1104:9:10", + "scope": 1801, + "src": "1031:9:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4708,10 +3876,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1444, + "id": 1777, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1104:7:10", + "src": "1031:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4721,18 +3889,18 @@ "visibility": "internal" } ], - "id": 1447, + "id": 1780, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1446, + "id": 1779, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1116:1:10", + "src": "1043:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4741,12 +3909,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1104:13:10" + "src": "1031:13:17" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1453, + "id": 1786, "isConstant": false, "isLValue": false, "isPure": false, @@ -4754,15 +3922,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1138:3:10", + "src": "1065:3:17", "subExpression": { "argumentTypes": null, - "id": 1452, + "id": 1785, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1445, - "src": "1138:1:10", + "referencedDeclaration": 1778, + "src": "1065:1:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4773,17 +3941,17 @@ "typeString": "uint256" } }, - "id": 1454, + "id": 1787, "nodeType": "ExpressionStatement", - "src": "1138:3:10" + "src": "1065:3:17" }, "nodeType": "ForStatement", - "src": "1099:107:10" + "src": "1026:107:17" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param tokens List of token addresses. Ether is represented with address 0x0.\n @param _dailyLimits List of daily limits in smalles units (e.g. Wei for Ether).", - "id": 1468, + "id": 1801, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4791,16 +3959,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 1439, + "id": 1772, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1435, + "id": 1768, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 1468, - "src": "1006:16:10", + "scope": 1801, + "src": "933:16:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4809,19 +3977,19 @@ }, "typeName": { "baseType": { - "id": 1433, + "id": 1766, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1006:7:10", + "src": "933:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1434, + "id": 1767, "length": null, "nodeType": "ArrayTypeName", - "src": "1006:9:10", + "src": "933:9:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -4832,11 +4000,11 @@ }, { "constant": false, - "id": 1438, + "id": 1771, "name": "_dailyLimits", "nodeType": "VariableDeclaration", - "scope": 1468, - "src": "1024:22:10", + "scope": 1801, + "src": "951:22:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4845,19 +4013,19 @@ }, "typeName": { "baseType": { - "id": 1436, + "id": 1769, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1024:7:10", + "src": "951:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1437, + "id": 1770, "length": null, "nodeType": "ArrayTypeName", - "src": "1024:9:10", + "src": "951:9:17", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -4867,31 +4035,31 @@ "visibility": "internal" } ], - "src": "1005:42:10" + "src": "932:42:17" }, "payable": false, "returnParameters": { - "id": 1440, + "id": 1773, "nodeType": "ParameterList", "parameters": [], - "src": "1067:0:10" + "src": "994:0:17" }, - "scope": 1694, - "src": "991:222:10", + "scope": 1973, + "src": "918:222:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1484, + "id": 1817, "nodeType": "Block", - "src": "1540:59:10", + "src": "1467:59:17", "statements": [ { "expression": { "argumentTypes": null, - "id": 1482, + "id": 1815, "isConstant": false, "isLValue": false, "isPure": false, @@ -4902,26 +4070,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1477, + "id": 1810, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "1550:11:10", + "referencedDeclaration": 1758, + "src": "1477:11:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1765_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1479, + "id": 1812, "indexExpression": { "argumentTypes": null, - "id": 1478, + "id": 1811, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1470, - "src": "1562:5:10", + "referencedDeclaration": 1803, + "src": "1489:5:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4932,21 +4100,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1550:18:10", + "src": "1477:18:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1480, + "id": 1813, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1427, - "src": "1550:29:10", + "referencedDeclaration": 1760, + "src": "1477:29:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4956,68 +4124,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1481, + "id": 1814, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "1582:10:10", + "referencedDeclaration": 1805, + "src": "1509:10:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1550:42:10", + "src": "1477:42:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1483, + "id": 1816, "nodeType": "ExpressionStatement", - "src": "1550:42:10" + "src": "1477:42:17" } ] }, "documentation": "@dev Allows to update the daily limit for a specified token. This can only be done via a Safe transaction.\n @param token Token contract address.\n @param dailyLimit Daily limit in smallest token unit.", - "id": 1485, + "id": 1818, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1475, + "id": 1808, "modifierName": { "argumentTypes": null, - "id": 1474, + "id": 1807, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "1525:10:10", + "referencedDeclaration": 730, + "src": "1452:10:17", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1525:10:10" + "src": "1452:10:17" } ], "name": "changeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1473, + "id": 1806, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1470, + "id": 1803, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1485, - "src": "1467:13:10", + "scope": 1818, + "src": "1394:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5025,10 +4193,10 @@ "typeString": "address" }, "typeName": { - "id": 1469, + "id": 1802, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1467:7:10", + "src": "1394:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5039,11 +4207,11 @@ }, { "constant": false, - "id": 1472, + "id": 1805, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1485, - "src": "1482:18:10", + "scope": 1818, + "src": "1409:18:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5051,10 +4219,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1471, + "id": 1804, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1482:7:10", + "src": "1409:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5064,26 +4232,26 @@ "visibility": "internal" } ], - "src": "1466:35:10" + "src": "1393:35:17" }, "payable": false, "returnParameters": { - "id": 1476, + "id": 1809, "nodeType": "ParameterList", "parameters": [], - "src": "1540:0:10" + "src": "1467:0:17" }, - "scope": 1694, - "src": "1441:158:10", + "scope": 1973, + "src": "1368:158:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1605, + "id": 1902, "nodeType": "Block", - "src": "1706:1218:10", + "src": "1979:695:17", "statements": [ { "expression": { @@ -5094,12 +4262,28 @@ "arguments": [ { "argumentTypes": null, - "id": 1501, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1487, - "src": "1831:6:10", + "expression": { + "argumentTypes": null, + "id": 1832, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2598, + "src": "2104:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2104:10:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5118,14 +4302,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1498, + "id": 1829, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "1814:7:10", + "referencedDeclaration": 717, + "src": "2087:7:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } } @@ -5133,22 +4317,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } ], - "id": 1497, + "id": 1828, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "1801:12:10", + "referencedDeclaration": 1472, + "src": "2074:12:17", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1343_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1472_$", "typeString": "type(contract OwnerManager)" } }, - "id": 1499, + "id": 1830, "isConstant": false, "isLValue": false, "isPure": false, @@ -5156,27 +4340,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1801:21:10", + "src": "2074:21:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1343", + "typeIdentifier": "t_contract$_OwnerManager_$1472", "typeString": "contract OwnerManager" } }, - "id": 1500, + "id": 1831, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1293, - "src": "1801:29:10", + "referencedDeclaration": 1422, + "src": "2074:29:17", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 1502, + "id": 1834, "isConstant": false, "isLValue": false, "isPure": false, @@ -5184,7 +4368,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1801:37:10", + "src": "2074:41:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5198,21 +4382,21 @@ "typeString": "bool" } ], - "id": 1496, + "id": 1827, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1793:7:10", + "referencedDeclaration": 2601, + "src": "2066:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1503, + "id": 1835, "isConstant": false, "isLValue": false, "isPure": false, @@ -5220,15 +4404,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1793:46:10", + "src": "2066:50:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1504, + "id": 1836, "nodeType": "ExpressionStatement", - "src": "1793:46:10" + "src": "2066:50:17" }, { "expression": { @@ -5237,287 +4421,48 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 1522, + "id": 1840, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1506, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1493, - "src": "1924:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1924:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1939:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1924:16:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1510, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1491, - "src": "1944:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1952:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1944:9:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1924:29:10", + "id": 1838, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2134:2:17", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", - "operator": "||", + "operator": "!=", "rightExpression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 1521, + "hexValue": "30", + "id": 1839, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "number", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1514, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1493, - "src": "1957:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1957:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1971:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1957:15:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1520, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1518, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1491, - "src": "1976:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1519, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1985:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1976:10:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1957:29:10", + "nodeType": "Literal", + "src": "2140:1:17", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" }, - "src": "1924:62:10", + "src": "2134:7:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5531,21 +4476,21 @@ "typeString": "bool" } ], - "id": 1505, + "id": 1837, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1916:7:10", + "referencedDeclaration": 2601, + "src": "2126:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1523, + "id": 1841, "isConstant": false, "isLValue": false, "isPure": false, @@ -5553,160 +4498,332 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1916:71:10", + "src": "2126:16:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1524, + "id": 1842, "nodeType": "ExpressionStatement", - "src": "1916:71:10" + "src": "2126:16:17" }, { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1526, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 1606, - "src": "1997:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1525, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1997:7:10", + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1844, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2160:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1845, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2169:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2160:10:17", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1843, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2601, + 2602 + ], + "referencedDeclaration": 2601, + "src": "2152:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2152:19:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1848, + "nodeType": "ExpressionStatement", + "src": "2152:19:17" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1851, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1820, + "src": "2266:5:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1852, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2273:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1850, + "name": "isUnderLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "2253:12:17", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 1853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2253:27:17", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1849, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2601, + 2602 + ], + "referencedDeclaration": 2601, + "src": "2245:7:17", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2245:36:17", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1855, + "nodeType": "ExpressionStatement", + "src": "2245:36:17" + }, + { + "expression": { + "argumentTypes": null, + "id": 1861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1856, + "name": "dailyLimits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1758, + "src": "2291:11:17", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1765_storage_$", + "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" + } + }, + "id": 1858, + "indexExpression": { + "argumentTypes": null, + "id": 1857, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1820, + "src": "2303:5:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2291:18:17", + "typeDescriptions": { + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage", + "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "value": null, - "visibility": "internal" - } - ], - "id": 1527, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "1997:13:10" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1529, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 1606, - "src": "2020:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1528, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2020:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1530, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2020:16:10" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 1532, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1606, - "src": "2046:14:10", - "stateVariable": false, - "storageLocation": "default", + "id": 1859, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "spentToday", + "nodeType": "MemberAccess", + "referencedDeclaration": 1762, + "src": "2291:29:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" - }, - "typeName": { - "id": 1531, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2046:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 1860, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2324:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2291:39:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } - ], - "id": 1533, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2046:14:10" + }, + "id": 1862, + "nodeType": "ExpressionStatement", + "src": "2291:39:17" }, { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, - "id": 1537, + "id": 1865, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1534, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1493, - "src": "2074:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 1535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2074:11:10", + "id": 1863, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1820, + "src": "2344:5:17", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "nodeType": "BinaryOperation", @@ -5714,14 +4831,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1536, + "id": 1864, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2089:1:10", + "src": "2353:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5729,159 +4846,156 @@ }, "value": "0" }, - "src": "2074:16:10", + "src": "2344:10:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1565, + "id": 1900, "nodeType": "Block", - "src": "2195:413:10", + "src": "2466:202:17", "statements": [ { - "expression": { - "argumentTypes": null, - "id": 1553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1551, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "2209:5:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1552, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "2217:2:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2209:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1554, - "nodeType": "ExpressionStatement", - "src": "2209:10:10" - }, - { - "assignments": [], + "assignments": [ + 1880 + ], "declarations": [ { "constant": false, - "id": 1556, - "name": "functionIdentifier", + "id": 1880, + "name": "data", "nodeType": "VariableDeclaration", - "scope": 1606, - "src": "2233:25:10", + "scope": 1903, + "src": "2480:17:17", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" }, "typeName": { - "id": 1555, - "name": "bytes4", + "id": 1879, + "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2233:6:10", + "src": "2480:5:17", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], - "id": 1557, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2233:25:10" - }, - { - "externalReferences": [ - { - "functionIdentifier": { - "declaration": 1556, - "isOffset": false, - "isSlot": false, - "src": "2367:18:10", - "valueSize": 1 + "id": 1887, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2524:27:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + }, + { + "argumentTypes": null, + "id": 1884, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2553:2:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1885, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2557:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1881, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2585, + "src": "2500:3:17", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2500:23:17", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (string memory) pure returns (bytes memory)" } }, - { - "data": { - "declaration": 1493, - "isOffset": false, - "isSlot": false, - "src": "2399:4:10", - "valueSize": 1 - } - }, - { - "receiver": { - "declaration": 1529, - "isOffset": false, - "isSlot": false, - "src": "2428:8:10", - "valueSize": 1 - } - }, - { - "amount": { - "declaration": 1532, - "isOffset": false, - "isSlot": false, - "src": "2479:6:10", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1493, - "isOffset": false, - "isSlot": false, - "src": "2450:4:10", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1493, - "isOffset": false, - "isSlot": false, - "src": "2499:4:10", - "valueSize": 1 - } + "id": 1886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2500:64:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } - ], - "id": 1558, - "nodeType": "InlineAssembly", - "operations": "{\n functionIdentifier := mload(add(data, 0x20))\n receiver := mload(add(data, 0x24))\n amount := mload(add(data, 0x44))\n}", - "src": "2340:205:10" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2480:84:17" }, { "expression": { @@ -5889,44 +5003,152 @@ "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "arguments": [ + { + "argumentTypes": null, + "id": 1891, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1820, + "src": "2620:5:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 1892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2627:1:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "id": 1893, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1880, + "src": "2630:4:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1894, + "name": "Enum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30, + "src": "2636:4:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeString": "type(contract Enum)" + } + }, + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "Operation", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "2636:14:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeString": "type(enum Enum.Operation)" + } + }, + "id": 1896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2636:19:17", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + ], + "expression": { + "argumentTypes": null, + "id": 1889, + "name": "manager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 717, + "src": "2586:7:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ModuleManager_$1100", + "typeString": "contract ModuleManager" + } + }, + "id": 1890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "execTransactionFromModule", + "nodeType": "MemberAccess", + "referencedDeclaration": 927, + "src": "2586:33:17", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" + } }, - "id": 1562, + "id": 1897, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1560, - "name": "functionIdentifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1556, - "src": "2546:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1561, - "name": "TRANSFER_FUNCTION_IDENTIFIER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1421, - "src": "2568:28:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "2546:50:10", + "names": [], + "nodeType": "FunctionCall", + "src": "2586:70:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5940,21 +5162,21 @@ "typeString": "bool" } ], - "id": 1559, + "id": 1888, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2538:7:10", + "referencedDeclaration": 2601, + "src": "2578:7:17", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1563, + "id": 1898, "isConstant": false, "isLValue": false, "isPure": false, @@ -5962,1016 +5184,230 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2538:59:10", + "src": "2578:79:17", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1564, + "id": 1899, "nodeType": "ExpressionStatement", - "src": "2538:59:10" + "src": "2578:79:17" } ] }, - "id": 1566, + "id": 1901, "nodeType": "IfStatement", - "src": "2070:538:10", + "src": "2340:328:17", "trueBody": { - "id": 1550, + "id": 1878, "nodeType": "Block", - "src": "2092:89:10", + "src": "2356:104:17", "statements": [ { "expression": { "argumentTypes": null, - "id": 1540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1538, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "2106:5:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1539, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2114:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2106:9:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1541, - "nodeType": "ExpressionStatement", - "src": "2106:9:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 1544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1542, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1529, - "src": "2129:8:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1543, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "2140:2:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2129:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1545, - "nodeType": "ExpressionStatement", - "src": "2129:13:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1546, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "2156:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1547, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1491, - "src": "2165:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2156:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1549, - "nodeType": "ExpressionStatement", - "src": "2156:14:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1568, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1529, - "src": "2625:8:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1569, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2637:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2625:13:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1567, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2399, - 2400 - ], - "referencedDeclaration": 2399, - "src": "2617:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2617:22:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1572, - "nodeType": "ExpressionStatement", - "src": "2617:22:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1574, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "2657:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2666:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2657:10:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1573, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2399, - 2400 - ], - "referencedDeclaration": 2399, - "src": "2649:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2649:19:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1578, - "nodeType": "ExpressionStatement", - "src": "2649:19:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1581, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "2763:5:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1582, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "2770:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ + "arguments": [ { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1580, - "name": "isUnderLimit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1680, - "src": "2750:12:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 1583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2750:27:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1579, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2399, - 2400 - ], - "referencedDeclaration": 2399, - "src": "2742:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2742:36:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1585, - "nodeType": "ExpressionStatement", - "src": "2742:36:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 1591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1586, - "name": "dailyLimits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "2788:11:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$", - "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" - } - }, - "id": 1588, - "indexExpression": { - "argumentTypes": null, - "id": 1587, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "2800:5:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2788:18:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage", - "typeString": "struct DailyLimitModule.DailyLimit storage ref" - } - }, - "id": 1589, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "spentToday", - "nodeType": "MemberAccess", - "referencedDeclaration": 1429, - "src": "2788:29:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 1590, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "2821:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2788:39:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1592, - "nodeType": "ExpressionStatement", - "src": "2788:39:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1596, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "2879:2:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1597, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1491, - "src": "2883:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1598, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1493, - "src": "2890:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "expression": { "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1869, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1822, + "src": "2412:2:17", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1870, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1824, + "src": "2416:6:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 1871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2424:2:17", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1872, + "name": "Enum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30, + "src": "2428:4:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", + "typeString": "type(contract Enum)" + } + }, + "id": 1873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "Operation", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "2428:14:17", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", + "typeString": "type(enum Enum.Operation)" + } + }, + "id": 1874, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Call", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2428:19:17", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + } + ], "expression": { - "argumentTypes": null, - "id": 1599, - "name": "Enum", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "2896:4:10", + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + ], + "expression": { + "argumentTypes": null, + "id": 1867, + "name": "manager", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 717, + "src": "2378:7:17", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ModuleManager_$1100", + "typeString": "contract ModuleManager" + } + }, + "id": 1868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "execTransactionFromModule", + "nodeType": "MemberAccess", + "referencedDeclaration": 927, + "src": "2378:33:17", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$6_$", - "typeString": "type(contract Enum)" + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 1600, + "id": 1875, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "Operation", - "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "2896:14:10", + "names": [], + "nodeType": "FunctionCall", + "src": "2378:70:17", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$5_$", - "typeString": "type(enum Enum.Operation)" + "typeIdentifier": "t_bool", + "typeString": "bool" } - }, - "id": 1601, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2896:19:10", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" } ], "expression": { - "argumentTypes": null, - "id": 1594, - "name": "manager", + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1866, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "2845:7:10", + "overloadedDeclarations": [ + 2601, + 2602 + ], + "referencedDeclaration": 2601, + "src": "2370:7:17", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", - "typeString": "contract ModuleManager" + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" } }, - "id": 1595, + "id": 1876, "isConstant": false, "isLValue": false, "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "memberName": "execTransactionFromModule", - "nodeType": "MemberAccess", - "referencedDeclaration": 798, - "src": "2845:33:10", + "names": [], + "nodeType": "FunctionCall", + "src": "2370:79:17", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 1602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2845:71:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "id": 1877, + "nodeType": "ExpressionStatement", + "src": "2370:79:17" } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1593, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2399, - 2400 - ], - "referencedDeclaration": 2399, - "src": "2837:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2837:80:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1604, - "nodeType": "ExpressionStatement", - "src": "2837:80:10" + ] + } } ] }, - "documentation": null, - "id": 1606, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeInternal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1487, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1606, - "src": "1630:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1630:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1489, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1606, - "src": "1646:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1488, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1646:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1491, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1606, - "src": "1658:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1490, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1658:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1493, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1606, - "src": "1673:10:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1492, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1673:5:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1629:55:10" - }, - "payable": false, - "returnParameters": { - "id": 1495, - "nodeType": "ParameterList", - "parameters": [], - "src": "1706:0:10" - }, - "scope": 1694, - "src": "1605:1319:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 1623, - "nodeType": "Block", - "src": "3393:61:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1616, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "3419:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3419:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1618, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1608, - "src": "3431:2:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1619, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1610, - "src": "3435:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1620, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1612, - "src": "3442:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1615, - "name": "executeInternal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "3403:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 1621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3403:44:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1622, - "nodeType": "ExpressionStatement", - "src": "3403:44:10" - } - ] - }, - "documentation": "@dev Returns if Safe transaction is a valid daily limit transaction.\n @param to Receiver address in case of Ether transfer, token address in case of a token transfer.\n @param value Ether value in case of an Ether transfer.\n @param data Encoded token transfer. Empty in case of Ether transfer.\n @return Returns if transaction can be executed.", - "id": 1624, + "documentation": "@dev Returns if Safe transaction is a valid daily limit transaction.\n @param token Address of the token that should be transfered (0 for Ether)\n @param to Address to which the tokens should be transfered\n @param amount Amount of tokens (or Ether) that should be transfered\n @return Returns if transaction can be executed.", + "id": 1903, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6979,16 +5415,16 @@ "name": "executeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1613, + "id": 1825, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1608, - "name": "to", + "id": 1820, + "name": "token", "nodeType": "VariableDeclaration", - "scope": 1624, - "src": "3335:10:10", + "scope": 1903, + "src": "1917:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6996,10 +5432,10 @@ "typeString": "address" }, "typeName": { - "id": 1607, + "id": 1819, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3335:7:10", + "src": "1917:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7010,25 +5446,25 @@ }, { "constant": false, - "id": 1610, - "name": "value", + "id": 1822, + "name": "to", "nodeType": "VariableDeclaration", - "scope": 1624, - "src": "3347:13:10", + "scope": 1903, + "src": "1932:10:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 1609, - "name": "uint256", + "id": 1821, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "3347:7:10", + "src": "1932:7:17", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, @@ -7036,79 +5472,79 @@ }, { "constant": false, - "id": 1612, - "name": "data", + "id": 1824, + "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1624, - "src": "3362:10:10", + "scope": 1903, + "src": "1944:14:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1611, - "name": "bytes", + "id": 1823, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3362:5:10", + "src": "1944:7:17", "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "3334:39:10" + "src": "1916:43:17" }, "payable": false, "returnParameters": { - "id": 1614, + "id": 1826, "nodeType": "ParameterList", "parameters": [], - "src": "3393:0:10" + "src": "1979:0:17" }, - "scope": 1694, - "src": "3308:146:10", + "scope": 1973, + "src": "1890:784:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1679, + "id": 1958, "nodeType": "Block", - "src": "3557:391:10", + "src": "2777:391:17", "statements": [ { "assignments": [ - 1634 + 1913 ], "declarations": [ { "constant": false, - "id": 1634, + "id": 1913, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1680, - "src": "3567:29:10", + "scope": 1959, + "src": "2787:29:17", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" }, "typeName": { "contractScope": null, - "id": 1633, + "id": 1912, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1432, - "src": "3567:10:10", + "referencedDeclaration": 1765, + "src": "2787:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } }, @@ -7116,31 +5552,31 @@ "visibility": "internal" } ], - "id": 1638, + "id": 1917, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1635, + "id": 1914, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "3599:11:10", + "referencedDeclaration": 1758, + "src": "2819:11:17", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1432_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1765_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1637, + "id": 1916, "indexExpression": { "argumentTypes": null, - "id": 1636, + "id": 1915, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1626, - "src": "3611:5:10", + "referencedDeclaration": 1905, + "src": "2831:5:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7151,14 +5587,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3599:18:10", + "src": "2819:18:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "3567:50:10" + "src": "2787:50:17" }, { "condition": { @@ -7167,7 +5603,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1643, + "id": 1922, "isConstant": false, "isLValue": false, "isPure": false, @@ -7177,18 +5613,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1639, + "id": 1918, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1693, - "src": "3631:5:10", + "referencedDeclaration": 1972, + "src": "2851:5:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 1640, + "id": 1919, "isConstant": false, "isLValue": false, "isPure": false, @@ -7196,7 +5632,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3631:7:10", + "src": "2851:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7208,50 +5644,50 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1641, + "id": 1920, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "3641:10:10", + "referencedDeclaration": 1913, + "src": "2861:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 1642, + "id": 1921, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 1431, - "src": "3641:18:10", + "referencedDeclaration": 1764, + "src": "2861:18:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3631:28:10", + "src": "2851:28:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1658, + "id": 1937, "nodeType": "IfStatement", - "src": "3627:126:10", + "src": "2847:126:17", "trueBody": { - "id": 1657, + "id": 1936, "nodeType": "Block", - "src": "3661:92:10", + "src": "2881:92:17", "statements": [ { "expression": { "argumentTypes": null, - "id": 1649, + "id": 1928, "isConstant": false, "isLValue": false, "isPure": false, @@ -7260,26 +5696,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1644, + "id": 1923, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "3675:10:10", + "referencedDeclaration": 1913, + "src": "2895:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 1646, + "id": 1925, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 1431, - "src": "3675:18:10", + "referencedDeclaration": 1764, + "src": "2895:18:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7292,18 +5728,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1647, + "id": 1926, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1693, - "src": "3696:5:10", + "referencedDeclaration": 1972, + "src": "2916:5:17", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 1648, + "id": 1927, "isConstant": false, "isLValue": false, "isPure": false, @@ -7311,26 +5747,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3696:7:10", + "src": "2916:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3675:28:10", + "src": "2895:28:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1650, + "id": 1929, "nodeType": "ExpressionStatement", - "src": "3675:28:10" + "src": "2895:28:17" }, { "expression": { "argumentTypes": null, - "id": 1655, + "id": 1934, "isConstant": false, "isLValue": false, "isPure": false, @@ -7339,26 +5775,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1651, + "id": 1930, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "3717:10:10", + "referencedDeclaration": 1913, + "src": "2937:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 1653, + "id": 1932, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1429, - "src": "3717:21:10", + "referencedDeclaration": 1762, + "src": "2937:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7369,14 +5805,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1654, + "id": 1933, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3741:1:10", + "src": "2961:1:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7384,15 +5820,15 @@ }, "value": "0" }, - "src": "3717:25:10", + "src": "2937:25:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1656, + "id": 1935, "nodeType": "ExpressionStatement", - "src": "3717:25:10" + "src": "2937:25:17" } ] } @@ -7404,7 +5840,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1673, + "id": 1952, "isConstant": false, "isLValue": false, "isPure": false, @@ -7415,7 +5851,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1665, + "id": 1944, "isConstant": false, "isLValue": false, "isPure": false, @@ -7426,7 +5862,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1662, + "id": 1941, "isConstant": false, "isLValue": false, "isPure": false, @@ -7435,26 +5871,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1659, + "id": 1938, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "3769:10:10", + "referencedDeclaration": 1913, + "src": "2989:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 1660, + "id": 1939, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1429, - "src": "3769:21:10", + "referencedDeclaration": 1762, + "src": "2989:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7464,18 +5900,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 1661, + "id": 1940, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "3793:6:10", + "referencedDeclaration": 1907, + "src": "3013:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3769:30:10", + "src": "2989:30:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7487,32 +5923,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1663, + "id": 1942, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "3803:10:10", + "referencedDeclaration": 1913, + "src": "3023:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 1664, + "id": 1943, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1427, - "src": "3803:21:10", + "referencedDeclaration": 1760, + "src": "3023:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3769:55:10", + "src": "2989:55:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7526,7 +5962,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1672, + "id": 1951, "isConstant": false, "isLValue": false, "isPure": false, @@ -7537,7 +5973,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1669, + "id": 1948, "isConstant": false, "isLValue": false, "isPure": false, @@ -7546,26 +5982,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1666, + "id": 1945, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "3840:10:10", + "referencedDeclaration": 1913, + "src": "3060:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 1667, + "id": 1946, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1429, - "src": "3840:21:10", + "referencedDeclaration": 1762, + "src": "3060:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7575,18 +6011,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 1668, + "id": 1947, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1628, - "src": "3864:6:10", + "referencedDeclaration": 1907, + "src": "3084:6:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3840:30:10", + "src": "3060:30:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7598,59 +6034,59 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1670, + "id": 1949, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1634, - "src": "3873:10:10", + "referencedDeclaration": 1913, + "src": "3093:10:17", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1432_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1765_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 1671, + "id": 1950, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1429, - "src": "3873:21:10", + "referencedDeclaration": 1762, + "src": "3093:21:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3840:54:10", + "src": "3060:54:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3769:125:10", + "src": "2989:125:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1676, + "id": 1955, "nodeType": "IfStatement", - "src": "3762:157:10", + "src": "2982:157:17", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 1674, + "id": 1953, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3915:4:10", + "src": "3135:4:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7658,24 +6094,24 @@ }, "value": "true" }, - "functionReturnParameters": 1632, - "id": 1675, + "functionReturnParameters": 1911, + "id": 1954, "nodeType": "Return", - "src": "3908:11:10" + "src": "3128:11:17" } }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 1677, + "id": 1956, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3936:5:10", + "src": "3156:5:17", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7683,15 +6119,15 @@ }, "value": "false" }, - "functionReturnParameters": 1632, - "id": 1678, + "functionReturnParameters": 1911, + "id": 1957, "nodeType": "Return", - "src": "3929:12:10" + "src": "3149:12:17" } ] }, "documentation": null, - "id": 1680, + "id": 1959, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7699,16 +6135,16 @@ "name": "isUnderLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1629, + "id": 1908, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1626, + "id": 1905, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1680, - "src": "3482:13:10", + "scope": 1959, + "src": "2702:13:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7716,10 +6152,10 @@ "typeString": "address" }, "typeName": { - "id": 1625, + "id": 1904, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3482:7:10", + "src": "2702:7:17", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7730,11 +6166,11 @@ }, { "constant": false, - "id": 1628, + "id": 1907, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 1680, - "src": "3497:14:10", + "scope": 1959, + "src": "2717:14:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7742,10 +6178,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1627, + "id": 1906, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3497:7:10", + "src": "2717:7:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7755,20 +6191,20 @@ "visibility": "internal" } ], - "src": "3481:31:10" + "src": "2701:31:17" }, "payable": false, "returnParameters": { - "id": 1632, + "id": 1911, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1631, + "id": 1910, "name": "", "nodeType": "VariableDeclaration", - "scope": 1680, - "src": "3547:4:10", + "scope": 1959, + "src": "2767:4:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7776,10 +6212,10 @@ "typeString": "bool" }, "typeName": { - "id": 1630, + "id": 1909, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3547:4:10", + "src": "2767:4:17", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7789,19 +6225,19 @@ "visibility": "internal" } ], - "src": "3546:6:10" + "src": "2766:6:17" }, - "scope": 1694, - "src": "3460:488:10", + "scope": 1973, + "src": "2680:488:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1692, + "id": 1971, "nodeType": "Block", - "src": "4112:44:10", + "src": "3332:44:17", "statements": [ { "expression": { @@ -7810,19 +6246,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1690, + "id": 1969, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1685, + "id": 1964, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2398, - "src": "4129:3:10", + "referencedDeclaration": 2600, + "src": "3349:3:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7839,19 +6275,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1688, + "id": 1967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1686, + "id": 1965, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2398, - "src": "4136:3:10", + "referencedDeclaration": 2600, + "src": "3356:3:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7862,14 +6298,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1687, + "id": 1966, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4142:6:10", + "src": "3362:6:17", "subdenomination": "days", "typeDescriptions": { "typeIdentifier": "t_rational_86400_by_1", @@ -7877,41 +6313,41 @@ }, "value": "1" }, - "src": "4136:12:10", + "src": "3356:12:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 1689, + "id": 1968, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4135:14:10", + "src": "3355:14:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4129:20:10", + "src": "3349:20:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 1684, - "id": 1691, + "functionReturnParameters": 1963, + "id": 1970, "nodeType": "Return", - "src": "4122:27:10" + "src": "3342:27:17" } ] }, "documentation": "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp.", - "id": 1693, + "id": 1972, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7919,23 +6355,23 @@ "name": "today", "nodeType": "FunctionDefinition", "parameters": { - "id": 1681, + "id": 1960, "nodeType": "ParameterList", "parameters": [], - "src": "4054:2:10" + "src": "3274:2:17" }, "payable": false, "returnParameters": { - "id": 1684, + "id": 1963, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1683, + "id": 1962, "name": "", "nodeType": "VariableDeclaration", - "scope": 1693, - "src": "4102:4:10", + "scope": 1972, + "src": "3322:4:17", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7943,10 +6379,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1682, + "id": 1961, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "4102:4:10", + "src": "3322:4:17", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7956,63 +6392,45 @@ "visibility": "internal" } ], - "src": "4101:6:10" + "src": "3321:6:17" }, - "scope": 1694, - "src": "4040:116:10", + "scope": 1973, + "src": "3260:116:17", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1695, - "src": "296:3862:10" + "scope": 1974, + "src": "296:3082:17" } ], - "src": "0:4159:10" + "src": "0:3379:17" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { "4": { "events": {}, "links": {}, - "address": "0x831ec5aaad91423fb78d3e1ad1fcf9d5006774df", - "transactionHash": "0xdae4c3a40843ab9bf9e62becc882075695bb8c0bcc3f3a3aa3016559b63f90e4" - }, - "1525950336085": { - "events": {}, - "links": {}, - "address": "0xe52c225329d3fb9f6933bd52e7067a24d20f7983", - "transactionHash": "0xaffd9cdbf1bd14f5f349af2782a1b4dbebd9ac97abedbcfb9aee5fb1707afe96" - }, - "1526283540628": { - "events": {}, - "links": {}, - "address": "0x452dd8d6f81786c3ad3ec3cbcf024687659c682a", - "transactionHash": "0xaffd9cdbf1bd14f5f349af2782a1b4dbebd9ac97abedbcfb9aee5fb1707afe96" - }, - "1526478212260": { - "events": {}, - "links": {}, - "address": "0x180cb429f1d8b3e99b718640d3895155e2190452", - "transactionHash": "0xefeddc1db847371ef66ea36caf0a583b6bb2b9a08fdbeb73ee0f1563131ca3e2" - }, - "1526973574996": { - "events": {}, - "links": {}, - "address": "0xdf2e7bbb8f57db7d8b11f9d8a77b0754979111c1", - "transactionHash": "0xefeddc1db847371ef66ea36caf0a583b6bb2b9a08fdbeb73ee0f1563131ca3e2" + "address": "0x7fbf23d81d86e6d983bb5526e1456a314057ffb0", + "transactionHash": "0x6c99547388ac2e4a058dfefd9a50240efb12fa4b21c127c89dcca96ca3e918d1" }, "1527316019334": { "events": {}, "links": {}, - "address": "0x1d916d0b2c243d732ee103132c7d85e8bda13beb", - "transactionHash": "0xefeddc1db847371ef66ea36caf0a583b6bb2b9a08fdbeb73ee0f1563131ca3e2" + "address": "0xc78d5518d62b7a5bd2659c432996dd55ca07f1eb", + "transactionHash": "0xa9c94eb8ff4c3c857211c3b03fa7356009f4952d8cc71d3953be16cd0152a022" + }, + "1527420696956": { + "events": {}, + "links": {}, + "address": "0xf289e80fb030333c4b18827149f3148c1597e5cd", + "transactionHash": "0x25e24bddf0042536191b50d1de301cc2aaa3356b6aac5044c793dcbe358a72f9" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-26T06:28:28.347Z" + "updatedAt": "2018-05-27T11:31:46.254Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/DailyLimitModuleWithSignature.json b/safe-contracts/build/contracts/DailyLimitModuleWithSignature.json deleted file mode 100644 index 60d71e99..00000000 --- a/safe-contracts/build/contracts/DailyLimitModuleWithSignature.json +++ /dev/null @@ -1,2573 +0,0 @@ -{ - "contractName": "DailyLimitModuleWithSignature", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "tokens", - "type": "address[]" - }, - { - "name": "_dailyLimits", - "type": "uint256[]" - } - ], - "name": "setup", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "TRANSFER_FUNCTION_IDENTIFIER", - "outputs": [ - { - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "manager", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_masterCopy", - "type": "address" - } - ], - "name": "changeMasterCopy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "token", - "type": "address" - }, - { - "name": "dailyLimit", - "type": "uint256" - } - ], - "name": "changeDailyLimit", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "NAME", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "nonce", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "today", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "dailyLimits", - "outputs": [ - { - "name": "dailyLimit", - "type": "uint256" - }, - { - "name": "spentToday", - "type": "uint256" - }, - { - "name": "lastDay", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "executeDailyLimit", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "v", - "type": "uint8" - }, - { - "name": "r", - "type": "bytes32" - }, - { - "name": "s", - "type": "bytes32" - } - ], - "name": "executeDailyLimitWithSignature", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "getTransactionHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506111d9806100206000396000f3006080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f03146100ca578063430e47f814610173578063481c6a75146101dc5780634bedd30f146102335780637de7edef146102ef57806381c5e03b14610332578063a3f4df7e1461037f578063affed0e01461040f578063b74e452b1461043a578063b98a34de14610465578063d7bffc921461051e578063fce7379a14610583578063ffa1ad7414610616575b600080fd5b3480156100d657600080fd5b5061017160048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506106a6565b005b34801561017f57600080fd5b50610188610745565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156101e857600080fd5b506101f1610769565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561023f57600080fd5b506102ed600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061078f565b005b3480156102fb57600080fd5b50610330600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061084c565b005b34801561033e57600080fd5b5061037d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610911565b005b34801561038b57600080fd5b506103946109b8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103d45780820151818401526020810190506103b9565b50505050905090810190601f1680156104015780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041b57600080fd5b506104246109f1565b6040518082815260200191505060405180910390f35b34801561044657600080fd5b5061044f6109f7565b6040518082815260200191505060405180910390f35b34801561047157600080fd5b50610500600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050610a0f565b60405180826000191660001916815260200191505060405180910390f35b34801561052a57600080fd5b5061055f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bf2565b60405180848152602001838152602001828152602001935050505060405180910390f35b34801561058f57600080fd5b50610614600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c1c565b005b34801561062257600080fd5b5061062b610c2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066b578082015181840152602081019050610650565b50505050905090810190601f1680156106985780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006106b0610c66565b600090505b82518110156107405781818151811015156106cc57fe5b906020019060200201516002600085848151811015156106e857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080806001019150506106b5565b505050565b7fa9059cbb0000000000000000000000000000000000000000000000000000000081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806107a0888888600354610a0f565b9150600182868686604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015610819573d6000803e3d6000fd5b505050602060405103519050600160036000828254019250508190555061084281898989610cf0565b5050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108a857600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156108ce57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561096d57600080fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b60035481565b60006201518042811515610a0757fe5b064203905090565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f010000000000000000000000000000000000000000000000000000000000000002308787878760405180887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101877effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183805190602001908083835b602083101515610baf5780518252602082019150602081019050602083039250610b8a565b6001836020036101000a03801982511681845116808217855250505050505090500182815260200197505050505050505060405180910390209050949350505050565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b610c2833848484610cf0565b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610cad57600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610db357600080fd5b505af1158015610dc7573d6000803e3d6000fd5b505050506040513d6020811015610ddd57600080fd5b81019080805190602001909291905050501515610df957600080fd5b60008551148015610e0a5750600086115b80610e22575060008551118015610e215750600086145b5b1515610e2d57600080fd5b600085511415610e465760009350869250859150610ecb565b8693506020850151905060248501519250604485015191507fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515610eca57600080fd5b5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610ef157600080fd5b600082111515610f0057600080fd5b610f0a84836110fe565b1515610f1557600080fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540192505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a788888860006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561101f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b8381101561105f578082015181840152602081019050611044565b50505050905090810190601f16801561108c5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156110ae57600080fd5b505af11580156110c2573d6000803e3d6000fd5b505050506040513d60208110156110d857600080fd5b810190808051906020019092919050505015156110f457600080fd5b5050505050505050565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806002015461114f6109f7565b11156111705761115d6109f7565b8160020181905550600081600101819055505b806000015483826001015401111580156111935750806001015483826001015401115b156111a157600191506111a6565b600091505b50929150505600a165627a7a723058206053bd547ec094a1d800289a5c392f5dd89e41cd33f47d9a2cbbbcd1c14c52670029", - "deployedBytecode": "0x6080604052600436106100c5576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f03146100ca578063430e47f814610173578063481c6a75146101dc5780634bedd30f146102335780637de7edef146102ef57806381c5e03b14610332578063a3f4df7e1461037f578063affed0e01461040f578063b74e452b1461043a578063b98a34de14610465578063d7bffc921461051e578063fce7379a14610583578063ffa1ad7414610616575b600080fd5b3480156100d657600080fd5b5061017160048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506106a6565b005b34801561017f57600080fd5b50610188610745565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b3480156101e857600080fd5b506101f1610769565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561023f57600080fd5b506102ed600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035600019169060200190929190803560001916906020019092919050505061078f565b005b3480156102fb57600080fd5b50610330600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061084c565b005b34801561033e57600080fd5b5061037d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610911565b005b34801561038b57600080fd5b506103946109b8565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103d45780820151818401526020810190506103b9565b50505050905090810190601f1680156104015780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041b57600080fd5b506104246109f1565b6040518082815260200191505060405180910390f35b34801561044657600080fd5b5061044f6109f7565b6040518082815260200191505060405180910390f35b34801561047157600080fd5b50610500600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050610a0f565b60405180826000191660001916815260200191505060405180910390f35b34801561052a57600080fd5b5061055f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bf2565b60405180848152602001838152602001828152602001935050505060405180910390f35b34801561058f57600080fd5b50610614600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c1c565b005b34801561062257600080fd5b5061062b610c2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561066b578082015181840152602081019050610650565b50505050905090810190601f1680156106985780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006106b0610c66565b600090505b82518110156107405781818151811015156106cc57fe5b906020019060200201516002600085848151811015156106e857fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555080806001019150506106b5565b505050565b7fa9059cbb0000000000000000000000000000000000000000000000000000000081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000806107a0888888600354610a0f565b9150600182868686604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015610819573d6000803e3d6000fd5b505050602060405103519050600160036000828254019250508190555061084281898989610cf0565b5050505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108a857600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156108ce57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561096d57600080fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b60035481565b60006201518042811515610a0757fe5b064203905090565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f010000000000000000000000000000000000000000000000000000000000000002308787878760405180887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101877effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140184815260200183805190602001908083835b602083101515610baf5780518252602082019150602081019050602083039250610b8a565b6001836020036101000a03801982511681845116808217855250505050505090500182815260200197505050505050505060405180910390209050949350505050565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b610c2833848484610cf0565b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610cad57600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600080600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e896040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610db357600080fd5b505af1158015610dc7573d6000803e3d6000fd5b505050506040513d6020811015610ddd57600080fd5b81019080805190602001909291905050501515610df957600080fd5b60008551148015610e0a5750600086115b80610e22575060008551118015610e215750600086145b5b1515610e2d57600080fd5b600085511415610e465760009350869250859150610ecb565b8693506020850151905060248501519250604485015191507fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515610eca57600080fd5b5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610ef157600080fd5b600082111515610f0057600080fd5b610f0a84836110fe565b1515610f1557600080fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160008282540192505081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a788888860006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561101f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b8381101561105f578082015181840152602081019050611044565b50505050905090810190601f16801561108c5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156110ae57600080fd5b505af11580156110c2573d6000803e3d6000fd5b505050506040513d60208110156110d857600080fd5b810190808051906020019092919050505015156110f457600080fd5b5050505050505050565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000209050806002015461114f6109f7565b11156111705761115d6109f7565b8160020181905550600081600101819055505b806000015483826001015401111580156111935750806001015483826001015401115b156111a157600191506111a6565b600091505b50929150505600a165627a7a723058206053bd547ec094a1d800289a5c392f5dd89e41cd33f47d9a2cbbbcd1c14c52670029", - "sourceMap": "241:1458:11:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;241:1458:11;;;;;;;", - "deployedSourceMap": "241:1458:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;991:222:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;991:222:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;441:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;441:67:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:5;;;;;;;;;;;;;;;;;;;;;;;;;;;874:346:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;874:346:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:208:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;1441:158:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1441:158:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;339:50:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;339:50:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;307:20:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;307:20:11;;;;;;;;;;;;;;;;;;;;;;;4040:116:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4040:116:10;;;;;;;;;;;;;;;;;;;;;;;1471:226:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1471:226:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;586:50:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;586:50:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3308:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3308:146:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;395:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;395:40:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;395:40:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;991:222;1104:9;1077:12;:10;:12::i;:::-;1116:1;1104:13;;1099:107;1123:6;:13;1119:1;:17;1099:107;;;1191:12;1204:1;1191:15;;;;;;;;;;;;;;;;;;1155:11;:22;1167:6;1174:1;1167:9;;;;;;;;;;;;;;;;;;1155:22;;;;;;;;;;;;;;;:33;;:51;;;;1138:3;;;;;;;1099:107;;;991:222;;;:::o;441:67::-;;;:::o;262:28:5:-;;;;;;;;;;;;;:::o;874:346:11:-;1013:23;1091:14;1039:42;1058:2;1062:5;1069:4;1075:5;;1039:18;:42::i;:::-;1013:68;;1108:35;1118:15;1135:1;1138;1141;1108:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1108:35:11;;;;;;;;1091:52;;1162:1;1153:5;;:10;;;;;;;;;;;1173:40;1189:6;1197:2;1201:5;1208:4;1173:15;:40::i;:::-;874:346;;;;;;;;:::o;626:208:4:-;359:7:5;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;791:1:4;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o;1441:158:10:-;359:7:5;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;1582:10:10;1550:11;:18;1562:5;1550:18;;;;;;;;;;;;;;;:29;;:42;;;;1441:158;;:::o;339:50::-;;;;;;;;;;;;;;;;;;;;:::o;307:20:11:-;;;;:::o;4040:116:10:-;4102:4;4142:6;4136:3;:12;;;;;;;;4129:3;:20;4122:27;;4040:116;:::o;1471:226:11:-;1599:7;1644:4;1639:10;;1656:1;1651:7;;1660:4;1666:2;1670:5;1677:4;1683:6;1629:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1629:61:11;;;;;;;;;;;;;;;;;;;;;;;;;;;1622:68;;1471:226;;;;;;:::o;586:50:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3308:146::-;3403:44;3419:10;3431:2;3435:5;3442:4;3403:15;:44::i;:::-;3308:146;;;:::o;395:40::-;;;;;;;;;;;;;;;;;;;;:::o;392:268:5:-;606:1;594:7;;;;;;;;;;;586:21;;;578:30;;;;;;;;642:10;618:7;;:35;;;;;;;;;;;;;;;;;;392:268::o;1605:1319:10:-;1997:13;2020:16;2046:14;2233:25;1814:7;;;;;;;;;;;1801:29;;;1831:6;1801:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1801:37:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1801:37:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1801:37:10;;;;;;;;;;;;;;;;1793:46;;;;;;;;1939:1;1924:4;:11;:16;:29;;;;;1952:1;1944:5;:9;1924:29;:62;;;;1971:1;1957:4;:11;:15;:29;;;;;1985:1;1976:5;:10;1957:29;1924:62;1916:71;;;;;;;;2089:1;2074:4;:11;:16;2070:538;;;2114:1;2106:9;;2140:2;2129:13;;2165:5;2156:14;;2070:538;;;2217:2;2209:10;;2405:4;2399;2395:15;2389:22;2367:44;;2456:4;2450;2446:15;2440:22;2428:34;;2505:4;2499;2495:15;2489:22;2479:32;;2568:28;2546:50;;;:18;:50;;;;2538:59;;;;;;;;2070:538;2637:1;2625:8;:13;;;;2617:22;;;;;;;;2666:1;2657:6;:10;2649:19;;;;;;;;2750:27;2763:5;2770:6;2750:12;:27::i;:::-;2742:36;;;;;;;;2821:6;2788:11;:18;2800:5;2788:18;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;2845:7;;;;;;;;;;;:33;;;2879:2;2883:5;2890:4;2896:19;2845:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2845:71:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2845:71:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2845:71:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2845:71:10;;;;;;;;;;;;;;;;2837:80;;;;;;;;1605:1319;;;;;;;;:::o;3460:488::-;3547:4;3567:29;3599:11;:18;3611:5;3599:18;;;;;;;;;;;;;;;3567:50;;3641:10;:18;;;3631:7;:5;:7::i;:::-;:28;3627:126;;;3696:7;:5;:7::i;:::-;3675:10;:18;;:28;;;;3741:1;3717:10;:21;;:25;;;;3627:126;3803:10;:21;;;3793:6;3769:10;:21;;;:30;:55;;:125;;;;;3873:10;:21;;;3864:6;3840:10;:21;;;:30;:54;3769:125;3762:157;;;3915:4;3908:11;;;;3762:157;3936:5;3929:12;;3460:488;;;;;;:::o", - "source": "pragma solidity 0.4.23;\nimport \"./DailyLimitModule.sol\";\n\n\n/// @title Daily Limit Module With Signature - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n/// @author Richard Meissner - \ncontract DailyLimitModuleWithSignature is DailyLimitModule {\n\n uint256 public nonce;\n\n /// @dev Returns if Safe transaction is a valid daily limit transaction.\n /// @param to Receiver address in case of Ether transfer, token address in case of a token transfer.\n /// @param value Ether value in case of an Ether transfer.\n /// @param data Encoded token transfer. Empty in case of Ether transfer.\n /// @param v Part of the signature of the sender.\n /// @param r Part of the signature of the sender.\n /// @param s Part of the signature of the sender.\n /// @return Returns if transaction can be executed.\n function executeDailyLimitWithSignature(address to, uint256 value, bytes data, uint8 v, bytes32 r, bytes32 s)\n public\n {\n bytes32 transactionHash = getTransactionHash(to, value, data, nonce);\n address sender = ecrecover(transactionHash, v, r, s);\n nonce += 1;\n executeInternal(sender, to, value, data);\n }\n\n /// @dev Returns transactions hash to be signed by owners.\n /// @param to Destination address.\n /// @param value Ether value.\n /// @param data Data payload.\n /// @param _nonce Transaction nonce.\n /// @return Transaction hash.\n function getTransactionHash(address to, uint256 value, bytes data, uint256 _nonce)\n public\n view\n returns (bytes32)\n {\n return keccak256(byte(0x19), byte(0), this, to, value, data, _nonce);\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModuleWithSignature.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModuleWithSignature.sol", - "exportedSymbols": { - "DailyLimitModuleWithSignature": [ - 1775 - ] - }, - "id": 1776, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1696, - "literals": [ - "solidity", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:23:11" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", - "file": "./DailyLimitModule.sol", - "id": 1697, - "nodeType": "ImportDirective", - "scope": 1776, - "sourceUnit": 1695, - "src": "24:32:11", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1698, - "name": "DailyLimitModule", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1694, - "src": "283:16:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DailyLimitModule_$1694", - "typeString": "contract DailyLimitModule" - } - }, - "id": 1699, - "nodeType": "InheritanceSpecifier", - "src": "283:16:11" - } - ], - "contractDependencies": [ - 580, - 621, - 1359, - 1694 - ], - "contractKind": "contract", - "documentation": "@title Daily Limit Module With Signature - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1775, - "linearizedBaseContracts": [ - 1775, - 1694, - 621, - 580, - 1359 - ], - "name": "DailyLimitModuleWithSignature", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1701, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "307:20:11", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1700, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "307:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1745, - "nodeType": "Block", - "src": "1003:217:11", - "statements": [ - { - "assignments": [ - 1717 - ], - "declarations": [ - { - "constant": false, - "id": 1717, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "1013:23:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1716, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1013:7:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1724, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1719, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1703, - "src": "1058:2:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1720, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "1062:5:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1721, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1707, - "src": "1069:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 1722, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1701, - "src": "1075:5:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1718, - "name": "getTransactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1774, - "src": "1039:18:11", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,bytes memory,uint256) view returns (bytes32)" - } - }, - "id": 1723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1039:42:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1013:68:11" - }, - { - "assignments": [ - 1726 - ], - "declarations": [ - { - "constant": false, - "id": 1726, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "1091:14:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1725, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1091:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1733, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1728, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1717, - "src": "1118:15:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1729, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1709, - "src": "1135:1:11", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 1730, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1711, - "src": "1138:1:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1731, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1713, - "src": "1141:1:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1727, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2388, - "src": "1108:9:11", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 1732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1108:35:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1091:52:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 1736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1734, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1701, - "src": "1153:5:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 1735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1162:1:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1153:10:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1737, - "nodeType": "ExpressionStatement", - "src": "1153:10:11" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1739, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1726, - "src": "1189:6:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1740, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1703, - "src": "1197:2:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1741, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "1201:5:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1742, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1707, - "src": "1208:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1738, - "name": "executeInternal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "1173:15:11", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 1743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1173:40:11", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1744, - "nodeType": "ExpressionStatement", - "src": "1173:40:11" - } - ] - }, - "documentation": "@dev Returns if Safe transaction is a valid daily limit transaction.\n @param to Receiver address in case of Ether transfer, token address in case of a token transfer.\n @param value Ether value in case of an Ether transfer.\n @param data Encoded token transfer. Empty in case of Ether transfer.\n @param v Part of the signature of the sender.\n @param r Part of the signature of the sender.\n @param s Part of the signature of the sender.\n @return Returns if transaction can be executed.", - "id": 1746, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeDailyLimitWithSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1714, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1703, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "914:10:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1702, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "914:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1705, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "926:13:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1704, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "926:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1707, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "941:10:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1706, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "941:5:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1709, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "953:7:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1708, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "953:5:11", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1711, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "962:9:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1710, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "962:7:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1713, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "973:9:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1712, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "973:7:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "913:70:11" - }, - "payable": false, - "returnParameters": { - "id": 1715, - "nodeType": "ParameterList", - "parameters": [], - "src": "1003:0:11" - }, - "scope": 1775, - "src": "874:346:11", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1773, - "nodeType": "Block", - "src": "1612:85:11", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 1761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1644:4:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 1760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1639:4:11", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 1762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1639:10:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1764, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1656:1:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1763, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1651:4:11", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 1765, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1651:7:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 1766, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2431, - "src": "1660:4:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DailyLimitModuleWithSignature_$1775", - "typeString": "contract DailyLimitModuleWithSignature" - } - }, - { - "argumentTypes": null, - "id": 1767, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1748, - "src": "1666:2:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1768, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1750, - "src": "1670:5:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1769, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1752, - "src": "1677:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 1770, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1754, - "src": "1683:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_DailyLimitModuleWithSignature_$1775", - "typeString": "contract DailyLimitModuleWithSignature" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1759, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2390, - "src": "1629:9:11", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1629:61:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 1758, - "id": 1772, - "nodeType": "Return", - "src": "1622:68:11" - } - ] - }, - "documentation": "@dev Returns transactions hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param _nonce Transaction nonce.\n @return Transaction hash.", - "id": 1774, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1755, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1748, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1774, - "src": "1499:10:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1747, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1499:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1750, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1774, - "src": "1511:13:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1749, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1511:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1752, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1774, - "src": "1526:10:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1751, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1526:5:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1754, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1774, - "src": "1538:14:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1753, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1538:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1498:55:11" - }, - "payable": false, - "returnParameters": { - "id": 1758, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1757, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1774, - "src": "1599:7:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1756, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1599:7:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1598:9:11" - }, - "scope": 1775, - "src": "1471:226:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1776, - "src": "241:1458:11" - } - ], - "src": "0:1700:11" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModuleWithSignature.sol", - "exportedSymbols": { - "DailyLimitModuleWithSignature": [ - 1775 - ] - }, - "id": 1776, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1696, - "literals": [ - "solidity", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:23:11" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", - "file": "./DailyLimitModule.sol", - "id": 1697, - "nodeType": "ImportDirective", - "scope": 1776, - "sourceUnit": 1695, - "src": "24:32:11", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1698, - "name": "DailyLimitModule", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1694, - "src": "283:16:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DailyLimitModule_$1694", - "typeString": "contract DailyLimitModule" - } - }, - "id": 1699, - "nodeType": "InheritanceSpecifier", - "src": "283:16:11" - } - ], - "contractDependencies": [ - 580, - 621, - 1359, - 1694 - ], - "contractKind": "contract", - "documentation": "@title Daily Limit Module With Signature - Allows to transfer limited amounts of ERC20 tokens and Ether without confirmations.\n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1775, - "linearizedBaseContracts": [ - 1775, - 1694, - 621, - 580, - 1359 - ], - "name": "DailyLimitModuleWithSignature", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1701, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 1775, - "src": "307:20:11", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1700, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "307:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1745, - "nodeType": "Block", - "src": "1003:217:11", - "statements": [ - { - "assignments": [ - 1717 - ], - "declarations": [ - { - "constant": false, - "id": 1717, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "1013:23:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1716, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1013:7:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1724, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1719, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1703, - "src": "1058:2:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1720, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "1062:5:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1721, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1707, - "src": "1069:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 1722, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1701, - "src": "1075:5:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1718, - "name": "getTransactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1774, - "src": "1039:18:11", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,bytes memory,uint256) view returns (bytes32)" - } - }, - "id": 1723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1039:42:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1013:68:11" - }, - { - "assignments": [ - 1726 - ], - "declarations": [ - { - "constant": false, - "id": 1726, - "name": "sender", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "1091:14:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1725, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1091:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1733, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1728, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1717, - "src": "1118:15:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1729, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1709, - "src": "1135:1:11", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 1730, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1711, - "src": "1138:1:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1731, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1713, - "src": "1141:1:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1727, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2388, - "src": "1108:9:11", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 1732, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1108:35:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1091:52:11" - }, - { - "expression": { - "argumentTypes": null, - "id": 1736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1734, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1701, - "src": "1153:5:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 1735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1162:1:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "1153:10:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1737, - "nodeType": "ExpressionStatement", - "src": "1153:10:11" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1739, - "name": "sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1726, - "src": "1189:6:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1740, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1703, - "src": "1197:2:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1741, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1705, - "src": "1201:5:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1742, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1707, - "src": "1208:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1738, - "name": "executeInternal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "1173:15:11", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 1743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1173:40:11", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1744, - "nodeType": "ExpressionStatement", - "src": "1173:40:11" - } - ] - }, - "documentation": "@dev Returns if Safe transaction is a valid daily limit transaction.\n @param to Receiver address in case of Ether transfer, token address in case of a token transfer.\n @param value Ether value in case of an Ether transfer.\n @param data Encoded token transfer. Empty in case of Ether transfer.\n @param v Part of the signature of the sender.\n @param r Part of the signature of the sender.\n @param s Part of the signature of the sender.\n @return Returns if transaction can be executed.", - "id": 1746, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeDailyLimitWithSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1714, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1703, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "914:10:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1702, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "914:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1705, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "926:13:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1704, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "926:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1707, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "941:10:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1706, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "941:5:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1709, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "953:7:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 1708, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "953:5:11", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1711, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "962:9:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1710, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "962:7:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1713, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 1746, - "src": "973:9:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1712, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "973:7:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "913:70:11" - }, - "payable": false, - "returnParameters": { - "id": 1715, - "nodeType": "ParameterList", - "parameters": [], - "src": "1003:0:11" - }, - "scope": 1775, - "src": "874:346:11", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1773, - "nodeType": "Block", - "src": "1612:85:11", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 1761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1644:4:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 1760, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1639:4:11", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 1762, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1639:10:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1764, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1656:1:11", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1763, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1651:4:11", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 1765, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1651:7:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 1766, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2431, - "src": "1660:4:11", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DailyLimitModuleWithSignature_$1775", - "typeString": "contract DailyLimitModuleWithSignature" - } - }, - { - "argumentTypes": null, - "id": 1767, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1748, - "src": "1666:2:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1768, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1750, - "src": "1670:5:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1769, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1752, - "src": "1677:4:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 1770, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1754, - "src": "1683:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_DailyLimitModuleWithSignature_$1775", - "typeString": "contract DailyLimitModuleWithSignature" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1759, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2390, - "src": "1629:9:11", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 1771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1629:61:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 1758, - "id": 1772, - "nodeType": "Return", - "src": "1622:68:11" - } - ] - }, - "documentation": "@dev Returns transactions hash to be signed by owners.\n @param to Destination address.\n @param value Ether value.\n @param data Data payload.\n @param _nonce Transaction nonce.\n @return Transaction hash.", - "id": 1774, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1755, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1748, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1774, - "src": "1499:10:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1747, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1499:7:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1750, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1774, - "src": "1511:13:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1749, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1511:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1752, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1774, - "src": "1526:10:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1751, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1526:5:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1754, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1774, - "src": "1538:14:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1753, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1538:7:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1498:55:11" - }, - "payable": false, - "returnParameters": { - "id": 1758, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1757, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1774, - "src": "1599:7:11", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1756, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1599:7:11", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1598:9:11" - }, - "scope": 1775, - "src": "1471:226:11", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1776, - "src": "241:1458:11" - } - ], - "src": "0:1700:11" - }, - "compiler": { - "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0x7e0c709947a6d2c283c16a69182104016c7e212c", - "transactionHash": "0x4d4459efdc04c3c67835de906ac494897ade960b27a6353943677b35f5a3b555" - }, - "1525950336085": { - "events": {}, - "links": {}, - "address": "0x788256524db64c2b23ff2e417a833927550a2d65", - "transactionHash": "0x13942c7ebe4c7c49493ac8d9d8ee3c329a0be8b7a78717117e0c5d43cbf8632c" - }, - "1526283540628": { - "events": {}, - "links": {}, - "address": "0x3e2ade0d97956160691a96fb2adf83844155708d", - "transactionHash": "0x13942c7ebe4c7c49493ac8d9d8ee3c329a0be8b7a78717117e0c5d43cbf8632c" - }, - "1526478212260": { - "events": {}, - "links": {}, - "address": "0xdb5a513347baaf6454bdfcb439d6c712c52a754e", - "transactionHash": "0x21a453f823a02858ff598704a36731ed3a5264592902c73a7e68ee53d3fb635d" - }, - "1526973574996": { - "events": {}, - "links": {}, - "address": "0x924ca341d09a83622d62128543b45530d43afa51", - "transactionHash": "0x21a453f823a02858ff598704a36731ed3a5264592902c73a7e68ee53d3fb635d" - }, - "1527316019334": { - "events": {}, - "links": {}, - "address": "0x7bd57821cda477c45be7999e6b08de00886999c9", - "transactionHash": "0x21a453f823a02858ff598704a36731ed3a5264592902c73a7e68ee53d3fb635d" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-05-26T06:28:28.345Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/DelegateConstructorProxy.json b/safe-contracts/build/contracts/DelegateConstructorProxy.json index 25dc2fc8..939b5322 100644 --- a/safe-contracts/build/contracts/DelegateConstructorProxy.json +++ b/safe-contracts/build/contracts/DelegateConstructorProxy.json @@ -50,11 +50,11 @@ "type": "fallback" } ], - "bytecode": "0x608060405234801561001057600080fd5b5060405161026d38038061026d83398101806040528101908080519060200190929190805182019291905050508160008173ffffffffffffffffffffffffffffffffffffffff161415151561006457600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000815111156100f15773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e60008214156100ed573d81fd5b5050505b505061016b806101026000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820caf2b106039b60d7c8f99a3087b6cbf6014cdee3748f0823ccd8cbf983ee4a720029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820caf2b106039b60d7c8f99a3087b6cbf6014cdee3748f0823ccd8cbf983ee4a720029", - "sourceMap": "355:882:0:-;;;610:625;8:9:-1;5:2;;;30:1;27;20:12;5:2;610:625:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:11;593:1:12;578:11;:16;;;;570:25;;;;;;;;618:11;605:10;;:24;;;;;;;;;;;;;;;;;;508:128;735:1:0;714:11;:18;:22;710:519;;;879:42;875:1;869:8;865:57;1043:1;1040;1026:11;1020:18;1013:4;1000:11;996:22;984:10;976:5;971:3;967:15;954:91;1079:4;1073:11;1124:14;1121:1;1116:3;1101:38;1171:1;1162:7;1159:14;1156:2;;;1188:14;1183:3;1176:27;1156:2;829:390;;;;610:625;;355:882;;;;;;", - "deployedSourceMap": "355:882:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;915:42:12;911:1;905:8;901:57;990:14;987:1;984;971:34;1085:1;1082;1066:14;1063:1;1051:10;1046:3;1033:54;1121:16;1118:1;1115;1100:38;1166:1;1157:7;1154:14;1151:2;;;1181:16;1178:1;1171:27;1151:2;1223:16;1220:1;1213:27;1386:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1386:104:12;;;;;;;;;;;;;;;;;;;;;;;1262:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1262:118:12;;;;;;;;;;;;;;;;;;;;;;;;;;;1386:104;1452:7;1482:1;1475:8;;1386:104;:::o;1262:118::-;1333:7;1363:10;;;;;;;;;;;1356:17;;1262:118;:::o", - "source": "pragma solidity 0.4.23;\nimport \"./Proxy.sol\";\n\n\n/// @title Delegate Constructor Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract DelegateConstructorProxy is Proxy {\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n /// @param initializer Data used for a delegate call to initialize the contract.\n constructor(address _masterCopy, bytes initializer) Proxy(_masterCopy)\n public\n {\n if (initializer.length > 0) {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n let success := delegatecall(sub(gas, 10000), masterCopy, add(initializer, 0x20), mload(initializer), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize)\n if eq(success, 0) { revert(ptr, returndatasize) }\n }\n }\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b5060405161026d38038061026d83398101806040528101908080519060200190929190805182019291905050508160008173ffffffffffffffffffffffffffffffffffffffff161415151561006457600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000815111156100f15773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e60008214156100ed573d81fd5b5050505b505061016b806101026000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a723058205cd4a89651ca60d8b50982ec7e3fbdce37b95b9583ada7bf65fc3dad95a54f750029", + "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a723058205cd4a89651ca60d8b50982ec7e3fbdce37b95b9583ada7bf65fc3dad95a54f750029", + "sourceMap": "355:882:0:-;;;610:625;8:9:-1;5:2;;;30:1;27;20:12;5:2;610:625:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;668:11;593:1:11;578:11;:16;;;;570:25;;;;;;;;618:11;605:10;;:24;;;;;;;;;;;;;;;;;;508:128;735:1:0;714:11;:18;:22;710:519;;;879:42;875:1;869:8;865:57;1043:1;1040;1026:11;1020:18;1013:4;1000:11;996:22;984:10;976:5;971:3;967:15;954:91;1079:4;1073:11;1124:14;1121:1;1116:3;1101:38;1171:1;1162:7;1159:14;1156:2;;;1188:14;1183:3;1176:27;1156:2;829:390;;;;610:625;;355:882;;;;;;", + "deployedSourceMap": "355:882:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;915:42:11;911:1;905:8;901:57;990:14;987:1;984;971:34;1085:1;1082;1066:14;1063:1;1051:10;1046:3;1033:54;1121:16;1118:1;1115;1100:38;1166:1;1157:7;1154:14;1151:2;;;1181:16;1178:1;1171:27;1151:2;1223:16;1220:1;1213:27;1386:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1386:104:11;;;;;;;;;;;;;;;;;;;;;;;1262:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1262:118:11;;;;;;;;;;;;;;;;;;;;;;;;;;;1386:104;1452:7;1482:1;1475:8;;1386:104;:::o;1262:118::-;1333:7;1363:10;;;;;;;;;;;1356:17;;1262:118;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./Proxy.sol\";\n\n\n/// @title Delegate Constructor Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract DelegateConstructorProxy is Proxy {\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n /// @param initializer Data used for a delegate call to initialize the contract.\n constructor(address _masterCopy, bytes initializer) Proxy(_masterCopy)\n public\n {\n if (initializer.length > 0) {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n let success := delegatecall(sub(gas, 10000), masterCopy, add(initializer, 0x20), mload(initializer), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize)\n if eq(success, 0) { revert(ptr, returndatasize) }\n }\n }\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/DelegateConstructorProxy.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/DelegateConstructorProxy.sol", @@ -71,7 +71,7 @@ "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", "src": "0:23:0" @@ -82,7 +82,7 @@ "id": 2, "nodeType": "ImportDirective", "scope": 24, - "sourceUnit": 1509, + "sourceUnit": 1569, "src": "24:21:0", "symbolAliases": [], "unitAlias": "" @@ -96,10 +96,10 @@ "id": 3, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1508, + "referencedDeclaration": 1568, "src": "392:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } }, @@ -109,7 +109,7 @@ } ], "contractDependencies": [ - 1508 + 1568 ], "contractKind": "contract", "documentation": "@title Delegate Constructor Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor.\n @author Stefan George - \n @author Richard Meissner - ", @@ -117,7 +117,7 @@ "id": 23, "linearizedBaseContracts": [ 23, - 1508 + 1568 ], "name": "DelegateConstructorProxy", "nodeType": "ContractDefinition", @@ -264,10 +264,10 @@ "name": "Proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1508, + "referencedDeclaration": 1568, "src": "662:5:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$1508_$", + "typeIdentifier": "t_type$_t_contract$_Proxy_$1568_$", "typeString": "type(contract Proxy)" } }, @@ -371,7 +371,7 @@ "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", "src": "0:23:0" @@ -382,7 +382,7 @@ "id": 2, "nodeType": "ImportDirective", "scope": 24, - "sourceUnit": 1509, + "sourceUnit": 1569, "src": "24:21:0", "symbolAliases": [], "unitAlias": "" @@ -396,10 +396,10 @@ "id": 3, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1508, + "referencedDeclaration": 1568, "src": "392:5:0", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } }, @@ -409,7 +409,7 @@ } ], "contractDependencies": [ - 1508 + 1568 ], "contractKind": "contract", "documentation": "@title Delegate Constructor Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor.\n @author Stefan George - \n @author Richard Meissner - ", @@ -417,7 +417,7 @@ "id": 23, "linearizedBaseContracts": [ 23, - 1508 + 1568 ], "name": "DelegateConstructorProxy", "nodeType": "ContractDefinition", @@ -564,10 +564,10 @@ "name": "Proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1508, + "referencedDeclaration": 1568, "src": "662:5:0", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Proxy_$1508_$", + "typeIdentifier": "t_type$_t_contract$_Proxy_$1568_$", "typeString": "type(contract Proxy)" } }, @@ -658,9 +658,9 @@ }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-10T10:43:07.891Z" + "updatedAt": "2018-05-27T11:12:45.574Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/ERC20Token.json b/safe-contracts/build/contracts/ERC20Token.json new file mode 100644 index 00000000..406c841d --- /dev/null +++ b/safe-contracts/build/contracts/ERC20Token.json @@ -0,0 +1,1799 @@ +{ + "contractName": "ERC20Token", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_from", + "type": "address" + }, + { + "indexed": true, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "_owner", + "type": "address" + }, + { + "indexed": true, + "name": "_spender", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "remaining", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.4.23;\n\n// Abstract contract for the full ERC 20 Token standard\n// https://github.com/ethereum/EIPs/issues/20\n\ncontract ERC20Token {\n /* This is a slight change to the ERC20 base standard.\n function totalSupply() constant returns (uint256 supply);\n is replaced with:\n uint256 public totalSupply;\n This automatically creates a getter function for the totalSupply.\n This is moved to the base contract since public getter functions are not\n currently recognised as an implementation of the matching abstract\n function by the compiler.\n */\n /// total amount of tokens\n uint256 public totalSupply;\n\n /// @param _owner The address from which the balance will be retrieved\n /// @return The balance\n function balanceOf(address _owner) public constant returns (uint256 balance);\n\n /// @notice send `_value` token to `_to` from `msg.sender`\n /// @param _to The address of the recipient\n /// @param _value The amount of token to be transferred\n /// @return Whether the transfer was successful or not\n function transfer(address _to, uint256 _value) public returns (bool success);\n\n /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`\n /// @param _from The address of the sender\n /// @param _to The address of the recipient\n /// @param _value The amount of token to be transferred\n /// @return Whether the transfer was successful or not\n function transferFrom(address _from, address _to, uint256 _value) public returns (bool success);\n\n /// @notice `msg.sender` approves `_spender` to spend `_value` tokens\n /// @param _spender The address of the account able to transfer the tokens\n /// @param _value The amount of tokens to be approved for transfer\n /// @return Whether the approval was successful or not\n function approve(address _spender, uint256 _value) public returns (bool success);\n\n /// @param _owner The address of the account owning tokens\n /// @param _spender The address of the account able to transfer the tokens\n /// @return Amount of remaining tokens allowed to spent\n function allowance(address _owner, address _spender) public constant returns (uint256 remaining);\n\n event Transfer(address indexed _from, address indexed _to, uint256 _value);\n event Approval(address indexed _owner, address indexed _spender, uint256 _value);\n}", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ERC20Token.sol", + "ast": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ERC20Token.sol", + "exportedSymbols": { + "ERC20Token": [ + 1685 + ] + }, + "id": 1686, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1621, + "literals": [ + "solidity", + "^", + "0.4", + ".23" + ], + "nodeType": "PragmaDirective", + "src": "0:24:14" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 1685, + "linearizedBaseContracts": [ + 1685 + ], + "name": "ERC20Token", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1623, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "616:26:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1622, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "616:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "@param _owner The address from which the balance will be retrieved\n @return The balance", + "id": 1630, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1625, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "771:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1624, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "771:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "770:16:14" + }, + "payable": false, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "812:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1627, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "812:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "811:17:14" + }, + "scope": 1685, + "src": "752:77:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "@notice send `_value` token to `_to` from `msg.sender`\n @param _to The address of the recipient\n @param _value The amount of token to be transferred\n @return Whether the transfer was successful or not", + "id": 1639, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1635, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1632, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 1639, + "src": "1083:11:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1083:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1634, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1639, + "src": "1096:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1633, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1096:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1082:29:14" + }, + "payable": false, + "returnParameters": { + "id": 1638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1637, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1639, + "src": "1128:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1636, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1128:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1127:14:14" + }, + "scope": 1685, + "src": "1065:77:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "@notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`\n @param _from The address of the sender\n @param _to The address of the recipient\n @param _value The amount of token to be transferred\n @return Whether the transfer was successful or not", + "id": 1650, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1641, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 1650, + "src": "1485:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1640, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1485:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1643, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 1650, + "src": "1500:11:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1500:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1645, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1650, + "src": "1513:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1644, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1513:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1484:44:14" + }, + "payable": false, + "returnParameters": { + "id": 1649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1648, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1650, + "src": "1545:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1647, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1545:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1544:14:14" + }, + "scope": 1685, + "src": "1463:96:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "@notice `msg.sender` approves `_spender` to spend `_value` tokens\n @param _spender The address of the account able to transfer the tokens\n @param _value The amount of tokens to be approved for transfer\n @return Whether the approval was successful or not", + "id": 1659, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1652, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 1659, + "src": "1865:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1651, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1865:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1654, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1659, + "src": "1883:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1883:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1864:34:14" + }, + "payable": false, + "returnParameters": { + "id": 1658, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1657, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1659, + "src": "1915:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1656, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1915:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1914:14:14" + }, + "scope": 1685, + "src": "1848:81:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "@param _owner The address of the account owning tokens\n @param _spender The address of the account able to transfer the tokens\n @return Amount of remaining tokens allowed to spent", + "id": 1668, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1661, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 1668, + "src": "2156:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1660, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2156:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1663, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 1668, + "src": "2172:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2172:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2155:34:14" + }, + "payable": false, + "returnParameters": { + "id": 1667, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1666, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 1668, + "src": "2215:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2215:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2214:19:14" + }, + "scope": 1685, + "src": "2137:97:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 1676, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 1675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1670, + "indexed": true, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 1676, + "src": "2255:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1669, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2255:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1672, + "indexed": true, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 1676, + "src": "2278:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2278:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1674, + "indexed": false, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1676, + "src": "2299:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2299:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2254:60:14" + }, + "src": "2240:75:14" + }, + { + "anonymous": false, + "documentation": null, + "id": 1684, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 1683, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1678, + "indexed": true, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 1684, + "src": "2335:22:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1677, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2335:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1680, + "indexed": true, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 1684, + "src": "2359:24:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1679, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2359:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1682, + "indexed": false, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1684, + "src": "2385:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1681, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2385:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2334:66:14" + }, + "src": "2320:81:14" + } + ], + "scope": 1686, + "src": "129:2274:14" + } + ], + "src": "0:2403:14" + }, + "legacyAST": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ERC20Token.sol", + "exportedSymbols": { + "ERC20Token": [ + 1685 + ] + }, + "id": 1686, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1621, + "literals": [ + "solidity", + "^", + "0.4", + ".23" + ], + "nodeType": "PragmaDirective", + "src": "0:24:14" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 1685, + "linearizedBaseContracts": [ + 1685 + ], + "name": "ERC20Token", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1623, + "name": "totalSupply", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "616:26:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1622, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "616:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "@param _owner The address from which the balance will be retrieved\n @return The balance", + "id": 1630, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1625, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "771:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1624, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "771:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "770:16:14" + }, + "payable": false, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 1630, + "src": "812:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1627, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "812:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "811:17:14" + }, + "scope": 1685, + "src": "752:77:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "@notice send `_value` token to `_to` from `msg.sender`\n @param _to The address of the recipient\n @param _value The amount of token to be transferred\n @return Whether the transfer was successful or not", + "id": 1639, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1635, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1632, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 1639, + "src": "1083:11:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1631, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1083:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1634, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1639, + "src": "1096:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1633, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1096:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1082:29:14" + }, + "payable": false, + "returnParameters": { + "id": 1638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1637, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1639, + "src": "1128:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1636, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1128:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1127:14:14" + }, + "scope": 1685, + "src": "1065:77:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "@notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from`\n @param _from The address of the sender\n @param _to The address of the recipient\n @param _value The amount of token to be transferred\n @return Whether the transfer was successful or not", + "id": 1650, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1641, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 1650, + "src": "1485:13:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1640, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1485:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1643, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 1650, + "src": "1500:11:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1500:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1645, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1650, + "src": "1513:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1644, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1513:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1484:44:14" + }, + "payable": false, + "returnParameters": { + "id": 1649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1648, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1650, + "src": "1545:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1647, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1545:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1544:14:14" + }, + "scope": 1685, + "src": "1463:96:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "@notice `msg.sender` approves `_spender` to spend `_value` tokens\n @param _spender The address of the account able to transfer the tokens\n @param _value The amount of tokens to be approved for transfer\n @return Whether the approval was successful or not", + "id": 1659, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1652, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 1659, + "src": "1865:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1651, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1865:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1654, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1659, + "src": "1883:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1883:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1864:34:14" + }, + "payable": false, + "returnParameters": { + "id": 1658, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1657, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1659, + "src": "1915:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1656, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1915:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1914:14:14" + }, + "scope": 1685, + "src": "1848:81:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": "@param _owner The address of the account owning tokens\n @param _spender The address of the account able to transfer the tokens\n @return Amount of remaining tokens allowed to spent", + "id": 1668, + "implemented": false, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1661, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 1668, + "src": "2156:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1660, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2156:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1663, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 1668, + "src": "2172:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2172:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2155:34:14" + }, + "payable": false, + "returnParameters": { + "id": 1667, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1666, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 1668, + "src": "2215:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1665, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2215:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2214:19:14" + }, + "scope": 1685, + "src": "2137:97:14", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 1676, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 1675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1670, + "indexed": true, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 1676, + "src": "2255:21:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1669, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2255:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1672, + "indexed": true, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 1676, + "src": "2278:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2278:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1674, + "indexed": false, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1676, + "src": "2299:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2299:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2254:60:14" + }, + "src": "2240:75:14" + }, + { + "anonymous": false, + "documentation": null, + "id": 1684, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 1683, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1678, + "indexed": true, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 1684, + "src": "2335:22:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1677, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2335:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1680, + "indexed": true, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 1684, + "src": "2359:24:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1679, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2359:7:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1682, + "indexed": false, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1684, + "src": "2385:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1681, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2385:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2334:66:14" + }, + "src": "2320:81:14" + } + ], + "scope": 1686, + "src": "129:2274:14" + } + ], + "src": "0:2403:14" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.0", + "updatedAt": "2018-05-27T11:12:45.584Z" +} \ No newline at end of file diff --git a/safe-contracts/build/contracts/Enum.json b/safe-contracts/build/contracts/Enum.json index 432757f6..94e98a6e 100644 --- a/safe-contracts/build/contracts/Enum.json +++ b/safe-contracts/build/contracts/Enum.json @@ -1,31 +1,31 @@ { "contractName": "Enum", "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820346c40fd38e691d9042d78bf7c33e05e8eafc3767b153318d8f2a9f5daf08bcf0029", - "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820346c40fd38e691d9042d78bf7c33e05e8eafc3767b153318d8f2a9f5daf08bcf0029", - "sourceMap": "115:95:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;115:95:0;;;;;;;", - "deployedSourceMap": "115:95:0:-;;;;;", - "source": "pragma solidity 0.4.23;\n\n\n/// @title Enum - Collection of enums\n/// @author Richard Meissner - \ncontract Enum {\n enum Operation {\n Call,\n DelegateCall,\n Create\n }\n}\n", + "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820641ab8b295edfaa2b1c8a8e0ae7d17ea2f4c8b95ea27e45d8947ed9a4799ca1f0029", + "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820641ab8b295edfaa2b1c8a8e0ae7d17ea2f4c8b95ea27e45d8947ed9a4799ca1f0029", + "sourceMap": "115:95:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;115:95:1;;;;;;;", + "deployedSourceMap": "115:95:1:-;;;;;", + "source": "pragma solidity 0.4.24;\n\n\n/// @title Enum - Collection of enums\n/// @author Richard Meissner - \ncontract Enum {\n enum Operation {\n Call,\n DelegateCall,\n Create\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "exportedSymbols": { "Enum": [ - 6 + 30 ] }, - "id": 7, + "id": 31, "nodeType": "SourceUnit", "nodes": [ { - "id": 1, + "id": 25, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:0" + "src": "0:23:1" }, { "baseContracts": [], @@ -33,66 +33,66 @@ "contractKind": "contract", "documentation": "@title Enum - Collection of enums\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 6, + "id": 30, "linearizedBaseContracts": [ - 6 + 30 ], "name": "Enum", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Enum.Operation", - "id": 5, + "id": 29, "members": [ { - "id": 2, + "id": 26, "name": "Call", "nodeType": "EnumValue", - "src": "160:4:0" + "src": "160:4:1" }, { - "id": 3, + "id": 27, "name": "DelegateCall", "nodeType": "EnumValue", - "src": "174:12:0" + "src": "174:12:1" }, { - "id": 4, + "id": 28, "name": "Create", "nodeType": "EnumValue", - "src": "196:6:0" + "src": "196:6:1" } ], "name": "Operation", "nodeType": "EnumDefinition", - "src": "135:73:0" + "src": "135:73:1" } ], - "scope": 7, - "src": "115:95:0" + "scope": 31, + "src": "115:95:1" } ], - "src": "0:211:0" + "src": "0:211:1" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "exportedSymbols": { "Enum": [ - 6 + 30 ] }, - "id": 7, + "id": 31, "nodeType": "SourceUnit", "nodes": [ { - "id": 1, + "id": 25, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:0" + "src": "0:23:1" }, { "baseContracts": [], @@ -100,52 +100,52 @@ "contractKind": "contract", "documentation": "@title Enum - Collection of enums\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 6, + "id": 30, "linearizedBaseContracts": [ - 6 + 30 ], "name": "Enum", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "Enum.Operation", - "id": 5, + "id": 29, "members": [ { - "id": 2, + "id": 26, "name": "Call", "nodeType": "EnumValue", - "src": "160:4:0" + "src": "160:4:1" }, { - "id": 3, + "id": 27, "name": "DelegateCall", "nodeType": "EnumValue", - "src": "174:12:0" + "src": "174:12:1" }, { - "id": 4, + "id": 28, "name": "Create", "nodeType": "EnumValue", - "src": "196:6:0" + "src": "196:6:1" } ], "name": "Operation", "nodeType": "EnumDefinition", - "src": "135:73:0" + "src": "135:73:1" } ], - "scope": 7, - "src": "115:95:0" + "scope": 31, + "src": "115:95:1" } ], - "src": "0:211:0" + "src": "0:211:1" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-16T10:51:14.736Z" + "updatedAt": "2018-05-27T11:12:45.575Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/GnosisSafe.json b/safe-contracts/build/contracts/GnosisSafe.json index b132687a..26770b8b 100644 --- a/safe-contracts/build/contracts/GnosisSafe.json +++ b/safe-contracts/build/contracts/GnosisSafe.json @@ -301,62 +301,62 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50612100806100206000396000f3006080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f54bf6e146100e8578063468721a714610143578063610b5925146101fb57806385e332cd1461023e57806386040aa9146102955780638cff635514610305578063a04222e11461035c578063a0e67e2b14610435578063a3f4df7e146104a1578063b2494df314610531578063b7f3358d1461059d578063b91a667f146105cd578063e009cfde1461061d578063e318b52b14610680578063e75235b814610703578063ffa1ad7414610734575b005b3480156100f457600080fd5b50610129600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107c4565b604051808215151515815260200191505060405180910390f35b34801561014f57600080fd5b506101e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610846565b604051808215151515815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108e2565b005b34801561024a57600080fd5b50610253610b5b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102a157600080fd5b50610303600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610b60565b005b34801561031157600080fd5b5061031a610de6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036857600080fd5b5061043360048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610deb565b005b34801561044157600080fd5b5061044a610e05565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561048d578082015181840152602081019050610472565b505050509050019250505060405180910390f35b3480156104ad57600080fd5b506104b6610fa0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104f65780820151818401526020810190506104db565b50505050905090810190601f1680156105235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561053d57600080fd5b50610546610fd9565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561058957808201518184015260208101905061056e565b505050509050019250505060405180910390f35b3480156105a957600080fd5b506105cb600480360381019080803560ff16906020019092919050505061127c565b005b3480156105d957600080fd5b5061061b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506112fb565b005b34801561062957600080fd5b5061067e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b3565b005b34801561068c57600080fd5b50610701600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117e2565b005b34801561070f57600080fd5b50610718611b77565b604051808260ff1660ff16815260200191505060405180910390f35b34801561074057600080fd5b50610749611b8e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561078957808201518184015260208101905061076e565b50505050905090810190601f1680156107b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156108cb57600080fd5b6108d8858585855a611bc7565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561091c57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156109705750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561097b57600080fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156109fe57600080fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b9a57600080fd5b8060ff1660016002540310151515610bb157600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610c4a57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055508060ff16600360009054906101000a900460ff1660ff16141515610de157610de08161127c565b5b505050565b600181565b610df58484611cc4565b610dff8282611f54565b50505050565b606080600080600254604051908082528060200260200182016040528015610e3c5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610f9757808383815181101515610eec57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610ea7565b82935050505090565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156110eb576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611047565b8260405190808252806020026020018201604052801561111a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611273578181848151811015156111c957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611184565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b657600080fd5b6002548160ff16111515156112ca57600080fd5b60018160ff16101515156112dd57600080fd5b80600360006101000a81548160ff021916908360ff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561133557600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156113895750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561139457600080fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561141857600080fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600081548092919060010191905055508060ff16600360009054906101000a900460ff1660ff161415156115af576115ae8161127c565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115ed57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561168557600080fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561181c57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156118705750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561187b57600080fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156118ff57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561199857600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600360009054906101000a900460ff16905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b60008060006002811115611bd757fe5b846002811115611be357fe5b1415611bfc57611bf587878786612092565b9150611cba565b60016002811115611c0957fe5b846002811115611c1557fe5b1415611c2d57611c268786856120ab565b9150611cb9565b611c36856120c2565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600080600080600360009054906101000a900460ff1660ff16141515611ce957600080fd5b84518460ff1611151515611cfc57600080fd5b60018460ff1610151515611d0f57600080fd5b60019250600091505b8451821015611eac578482815181101515611d2f57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015611d8f5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611d9a57600080fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611e1e57600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050611d18565b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550845160028190555083600360006101000a81548160ff021916908360ff1602179055505050505050565b6000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611fd857600080fd5b6001600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff1614151561208e5761208282825a6120ab565b151561208d57600080fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a723058208d0d6dcd63a5e2ddebea816d26f7dc74ebbf2ef27fc9c39f932838e0e2d2710f0029", - "deployedBytecode": "0x6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f54bf6e146100e8578063468721a714610143578063610b5925146101fb57806385e332cd1461023e57806386040aa9146102955780638cff635514610305578063a04222e11461035c578063a0e67e2b14610435578063a3f4df7e146104a1578063b2494df314610531578063b7f3358d1461059d578063b91a667f146105cd578063e009cfde1461061d578063e318b52b14610680578063e75235b814610703578063ffa1ad7414610734575b005b3480156100f457600080fd5b50610129600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107c4565b604051808215151515815260200191505060405180910390f35b34801561014f57600080fd5b506101e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610846565b604051808215151515815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108e2565b005b34801561024a57600080fd5b50610253610b5b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102a157600080fd5b50610303600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610b60565b005b34801561031157600080fd5b5061031a610de6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036857600080fd5b5061043360048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610deb565b005b34801561044157600080fd5b5061044a610e05565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561048d578082015181840152602081019050610472565b505050509050019250505060405180910390f35b3480156104ad57600080fd5b506104b6610fa0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104f65780820151818401526020810190506104db565b50505050905090810190601f1680156105235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561053d57600080fd5b50610546610fd9565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561058957808201518184015260208101905061056e565b505050509050019250505060405180910390f35b3480156105a957600080fd5b506105cb600480360381019080803560ff16906020019092919050505061127c565b005b3480156105d957600080fd5b5061061b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506112fb565b005b34801561062957600080fd5b5061067e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b3565b005b34801561068c57600080fd5b50610701600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117e2565b005b34801561070f57600080fd5b50610718611b77565b604051808260ff1660ff16815260200191505060405180910390f35b34801561074057600080fd5b50610749611b8e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561078957808201518184015260208101905061076e565b50505050905090810190601f1680156107b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156108cb57600080fd5b6108d8858585855a611bc7565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561091c57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156109705750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561097b57600080fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156109fe57600080fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b9a57600080fd5b8060ff1660016002540310151515610bb157600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610c4a57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055508060ff16600360009054906101000a900460ff1660ff16141515610de157610de08161127c565b5b505050565b600181565b610df58484611cc4565b610dff8282611f54565b50505050565b606080600080600254604051908082528060200260200182016040528015610e3c5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610f9757808383815181101515610eec57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610ea7565b82935050505090565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156110eb576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611047565b8260405190808252806020026020018201604052801561111a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611273578181848151811015156111c957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611184565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b657600080fd5b6002548160ff16111515156112ca57600080fd5b60018160ff16101515156112dd57600080fd5b80600360006101000a81548160ff021916908360ff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561133557600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156113895750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561139457600080fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561141857600080fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600081548092919060010191905055508060ff16600360009054906101000a900460ff1660ff161415156115af576115ae8161127c565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115ed57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561168557600080fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561181c57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156118705750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561187b57600080fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156118ff57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561199857600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600360009054906101000a900460ff16905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b60008060006002811115611bd757fe5b846002811115611be357fe5b1415611bfc57611bf587878786612092565b9150611cba565b60016002811115611c0957fe5b846002811115611c1557fe5b1415611c2d57611c268786856120ab565b9150611cb9565b611c36856120c2565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600080600080600360009054906101000a900460ff1660ff16141515611ce957600080fd5b84518460ff1611151515611cfc57600080fd5b60018460ff1610151515611d0f57600080fd5b60019250600091505b8451821015611eac578482815181101515611d2f57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015611d8f5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611d9a57600080fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611e1e57600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050611d18565b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550845160028190555083600360006101000a81548160ff021916908360ff1602179055505050505050565b6000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611fd857600080fd5b6001600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff1614151561208e5761208282825a6120ab565b151561208d57600080fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a723058208d0d6dcd63a5e2ddebea816d26f7dc74ebbf2ef27fc9c39f932838e0e2d2710f0029", - "sourceMap": "322:674:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;322:674:1;;;;;;;", - "deployedSourceMap": "322:674:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1235:391;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1235:391:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:55;;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;;;;;;;;;;;;;;;;;401:46:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;401:46: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;401:46:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4423:738;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1887:299: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;;;;;;;;;;;;;;;;;;;;;;;;;;;453:40:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;453:40: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;453:40:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4841:129:7;4918:4;4962:1;4945:6;:13;4952:5;4945:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;4938:25;;4841:129;;;:::o;2522:377:6:-;2654:12;2762:1;2739:7;:19;2747:10;2739:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2731:33;;;;;;;;2846:46;2854:2;2858:5;2865:4;2871:9;2882;2846:7;:46::i;:::-;2836:56;;2522:377;;;;;;:::o;1235:391::-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;1401:1:6;1390:6;1382:20;;;;:59;;;;;550:3;1406:35;;1414:6;1406:35;;;;1382:59;1374:68;;;;;;;;1520:1;1501:7;:15;1509:6;1501:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1493:29;;;;;;;;1550:7;:25;550:3;1550:25;;;;;;;;;;;;;;;;;;;;;;;;;1532:7;:15;1540:6;1532:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1613:6;1585:7;:25;550:3;1585:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1235:391;:::o;499:55::-;550:3;499:55;:::o;2776:573:7:-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;3000:10:7;2982:28;;2995:1;2982:10;;:14;:28;;2974:37;;;;;;;;3112:5;3091:26;;:6;:17;3098:9;3091:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3083:35;;;;;;;;3148:6;:13;3155:5;3148:13;;;;;;;;;;;;;;;;;;;;;;;;;3128:6;:17;3135:9;3128:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3187:1;3171:6;:13;3178:5;3171:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3198:10;;:12;;;;;;;;;;;;;;3291:10;3278:23;;:9;;;;;;;;;;;:23;;;;3274:68;;;3315:27;3331:10;3315:15;:27::i;:::-;3274:68;2776:573;;;:::o;287:54::-;337:3;287:54;:::o;693:301:1:-;798:32;810:7;819:10;798:11;:32::i;:::-;965:22;978:2;982:4;965:12;:22::i;:::-;693:301;;;;:::o;5052:458:7:-;5118:9;5143:22;5237:13;5264:20;5182:10;;5168:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5168:25:7;;;;5143:50;;5253:1;5237:17;;5287:6;:23;337:3;5287:23;;;;;;;;;;;;;;;;;;;;;;;;;5264:46;;5320:162;337:3;5326:31;;:12;:31;;;;5320:162;;;5388:12;5373:5;5379;5373:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;5429:6;:20;5436:12;5429:20;;;;;;;;;;;;;;;;;;;;;;;;;5414:35;;5463:8;;;;;;;5320:162;;;5498:5;5491:12;;5052:458;;;;:::o;401:46:6:-;;;;;;;;;;;;;;;;;;;;:::o;4423:738::-;4490:9;4549:19;4582:21;4782:22;4571:1;4549:23;;4606:7;:25;550:3;4606:25;;;;;;;;;;;;;;;;;;;;;;;;;4582:49;;4641:132;550:3;4647:33;;:13;:33;;;;4641:132;;;4712:7;:22;4720:13;4712:22;;;;;;;;;;;;;;;;;;;;;;;;;4696:38;;4748:14;;;;;;;4641:132;;;4821:11;4807:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4807:26:6;;;;4782:51;;4891:1;4877:15;;4918:7;:25;550:3;4918:25;;;;;;;;;;;;;;;;;;;;;;;;;4902:41;;4953:180;550:3;4959:33;;:13;:33;;;;4953:180;;;5029:13;5008:5;5014:11;5008:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5072:7;:22;5080:13;5072:22;;;;;;;;;;;;;;;;;;;;;;;;;5056:38;;5108:14;;;;;;;4953:180;;;5149:5;5142:12;;4423:738;;;;:::o;4398:318:7:-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;4580:10:7;;4566;:24;;;;4558:33;;;;;;;;4675:1;4661:10;:15;;;;4653:24;;;;;;;;4699:10;4687:9;;:22;;;;;;;;;;;;;;;;;;4398:318;:::o;1906:528::-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;2076:1:7;2067:5;:10;;;;:38;;;;;337:3;2081:24;;:5;:24;;;;2067:38;2059:47;;;;;;;;2181:1;2164:6;:13;2171:5;2164:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2156:27;;;;;;;;2209:6;:23;337:3;2209:23;;;;;;;;;;;;;;;;;;;;;;;;;2193:6;:13;2200:5;2193:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2268:5;2242:6;:23;337:3;2242:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2283:10;;:12;;;;;;;;;;;;;2376:10;2363:23;;:9;;;;;;;;;;;:23;;;;2359:68;;;2400:27;2416:10;2400:15;:27::i;:::-;2359:68;1906:528;;:::o;1887:299:6:-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;2095:6:6;2064:38;;:7;:19;2072:10;2064:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2056:47;;;;;;;;2135:7;:15;2143:6;2135:15;;;;;;;;;;;;;;;;;;;;;;;;;2113:7;:19;2121:10;2113:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2178:1;2160:7;:15;2168:6;2160:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1887:299;;:::o;3683:526:7:-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;3866:1:7;3854:8;:13;;;;:44;;;;;337:3;3871:27;;:8;:27;;;;3854:44;3846:53;;;;;;;;3977:1;3957:6;:16;3964:8;3957:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;3949:30;;;;;;;;4080:8;4059:29;;:6;:17;4066:9;4059:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4051:38;;;;;;;;4118:6;:16;4125:8;4118:16;;;;;;;;;;;;;;;;;;;;;;;;;4099:6;:16;4106:8;4099:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4164:8;4144:6;:17;4151:9;4144:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4201:1;4182:6;:16;4189:8;4182:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;3683:526;;;:::o;4722:113::-;4791:5;4819:9;;;;;;;;;;;4812:16;;4722:113;:::o;453:40:6:-;;;;;;;;;;;;;;;;;;;;:::o;2905:548::-;3036:12;3307:19;3081;3068:32;;;;;;;;:9;:32;;;;;;;;;3064:383;;;3124:35;3136:2;3140:5;3147:4;3153:5;3124:11;:35::i;:::-;3114:45;;3064:383;;;3191:27;3178:40;;;;;;;;:9;:40;;;;;;;;;3174:273;;;3242:36;3262:2;3266:4;3272:5;3242:19;:36::i;:::-;3232:46;;3174:273;;;3329:19;3343:4;3329:13;:19::i;:::-;3307:41;;3387:1;3372:11;:16;;;;3362:26;;3407:29;3424:11;3407:29;;;;;;;;;;;;;;;;;;;;;;3174:273;3064:383;2905:548;;;;;;;;:::o;641:1025:7:-;1132:20;1185:9;1284:13;875:1;862:9;;;;;;;;;;;:14;;;854:23;;;;;;;;984:7;:14;970:10;:28;;;;962:37;;;;;;;;1083:1;1069:10;:15;;;;1061:24;;;;;;;;337:3;1132:38;;1197:1;1185:13;;1180:363;1204:7;:14;1200:1;:18;1180:363;;;1300:7;1308:1;1300:10;;;;;;;;;;;;;;;;;;1284:26;;1341:1;1332:5;:10;;;;:38;;;;;337:3;1346:24;;:5;:24;;;;1332:38;1324:47;;;;;;;;1454:1;1437:6;:13;1444:5;1437:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1429:27;;;;;;;;1493:5;1470:6;:20;1477:12;1470:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1527:5;1512:20;;1220:3;;;;;;;1180:363;;;337:3;1552:6;:20;1559:12;1552:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1613:7;:14;1600:10;:27;;;;1649:10;1637:9;;:22;;;;;;;;;;;;;;;;;;641:1025;;;;;:::o;735:333:6:-;849:1;820:7;:25;550:3;820:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;812:39;;;;;;;;550:3;861:7;:25;550:3;861:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;925:1;919:2;:7;;;;915:146;;;1020:40;1040:2;1044:4;1050:9;1020:19;:40::i;:::-;1012:49;;;;;;;;915:146;735:333;;:::o;3459:309::-;3568:12;3750:1;3747;3740:4;3734:11;3727:4;3721;3717:15;3710:5;3706:2;3699:5;3694:58;3683:69;;3669:93;;;;;;:::o;3774:303::-;3876:12;4059:1;4056;4049:4;4043:11;4036:4;4030;4026:15;4022:2;4015:5;4002:59;3991:70;;3977:94;;;;;:::o;4083:261::-;4152:19;4322:4;4316:11;4309:4;4303;4299:15;4296:1;4289:39;4274:54;;4260:78;;;:::o", - "source": "pragma solidity 0.4.23;\nimport \"./Module.sol\";\nimport \"./ModuleManager.sol\";\nimport \"./OwnerManager.sol\";\n\n\n/// @title Gnosis Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n/// @author Stefan George - \ncontract GnosisSafe is ModuleManager, OwnerManager {\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n /// @param to Contract address for optional delegate call.\n /// @param data Data payload for optional delegate call.\n function setup(address[] _owners, uint8 _threshold, address to, bytes data)\n public\n {\n setupOwners(_owners, _threshold);\n // As setupOwners can only be called if the contract has not been initialized we don't need a check for setupModules\n setupModules(to, data);\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50612100806100206000396000f3006080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f54bf6e146100e8578063468721a714610143578063610b5925146101fb57806385e332cd1461023e57806386040aa9146102955780638cff635514610305578063a04222e11461035c578063a0e67e2b14610435578063a3f4df7e146104a1578063b2494df314610531578063b7f3358d1461059d578063b91a667f146105cd578063e009cfde1461061d578063e318b52b14610680578063e75235b814610703578063ffa1ad7414610734575b005b3480156100f457600080fd5b50610129600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107c4565b604051808215151515815260200191505060405180910390f35b34801561014f57600080fd5b506101e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610846565b604051808215151515815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108e2565b005b34801561024a57600080fd5b50610253610b5b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102a157600080fd5b50610303600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610b60565b005b34801561031157600080fd5b5061031a610de6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036857600080fd5b5061043360048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610deb565b005b34801561044157600080fd5b5061044a610e05565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561048d578082015181840152602081019050610472565b505050509050019250505060405180910390f35b3480156104ad57600080fd5b506104b6610fa0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104f65780820151818401526020810190506104db565b50505050905090810190601f1680156105235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561053d57600080fd5b50610546610fd9565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561058957808201518184015260208101905061056e565b505050509050019250505060405180910390f35b3480156105a957600080fd5b506105cb600480360381019080803560ff16906020019092919050505061127c565b005b3480156105d957600080fd5b5061061b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506112fb565b005b34801561062957600080fd5b5061067e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b3565b005b34801561068c57600080fd5b50610701600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117e2565b005b34801561070f57600080fd5b50610718611b77565b604051808260ff1660ff16815260200191505060405180910390f35b34801561074057600080fd5b50610749611b8e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561078957808201518184015260208101905061076e565b50505050905090810190601f1680156107b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156108cb57600080fd5b6108d8858585855a611bc7565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561091c57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156109705750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561097b57600080fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156109fe57600080fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b9a57600080fd5b8060ff1660016002540310151515610bb157600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610c4a57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055508060ff16600360009054906101000a900460ff1660ff16141515610de157610de08161127c565b5b505050565b600181565b610df58484611cc4565b610dff8282611f54565b50505050565b606080600080600254604051908082528060200260200182016040528015610e3c5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610f9757808383815181101515610eec57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610ea7565b82935050505090565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156110eb576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611047565b8260405190808252806020026020018201604052801561111a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611273578181848151811015156111c957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611184565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b657600080fd5b6002548160ff16111515156112ca57600080fd5b60018160ff16101515156112dd57600080fd5b80600360006101000a81548160ff021916908360ff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561133557600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156113895750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561139457600080fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561141857600080fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600081548092919060010191905055508060ff16600360009054906101000a900460ff1660ff161415156115af576115ae8161127c565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115ed57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561168557600080fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561181c57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156118705750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561187b57600080fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156118ff57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561199857600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600360009054906101000a900460ff16905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b60008060006002811115611bd757fe5b846002811115611be357fe5b1415611bfc57611bf587878786612092565b9150611cba565b60016002811115611c0957fe5b846002811115611c1557fe5b1415611c2d57611c268786856120ab565b9150611cb9565b611c36856120c2565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600080600080600360009054906101000a900460ff1660ff16141515611ce957600080fd5b84518460ff1611151515611cfc57600080fd5b60018460ff1610151515611d0f57600080fd5b60019250600091505b8451821015611eac578482815181101515611d2f57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015611d8f5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611d9a57600080fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611e1e57600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050611d18565b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550845160028190555083600360006101000a81548160ff021916908360ff1602179055505050505050565b6000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611fd857600080fd5b6001600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff1614151561208e5761208282825a6120ab565b151561208d57600080fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820320bc4a9d7df05e83245d3a6f7c0c117f907d8577ab1a6fb3eb23fc392c0a32b0029", + "deployedBytecode": "0x6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f54bf6e146100e8578063468721a714610143578063610b5925146101fb57806385e332cd1461023e57806386040aa9146102955780638cff635514610305578063a04222e11461035c578063a0e67e2b14610435578063a3f4df7e146104a1578063b2494df314610531578063b7f3358d1461059d578063b91a667f146105cd578063e009cfde1461061d578063e318b52b14610680578063e75235b814610703578063ffa1ad7414610734575b005b3480156100f457600080fd5b50610129600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107c4565b604051808215151515815260200191505060405180910390f35b34801561014f57600080fd5b506101e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610846565b604051808215151515815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108e2565b005b34801561024a57600080fd5b50610253610b5b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102a157600080fd5b50610303600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610b60565b005b34801561031157600080fd5b5061031a610de6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036857600080fd5b5061043360048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610deb565b005b34801561044157600080fd5b5061044a610e05565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561048d578082015181840152602081019050610472565b505050509050019250505060405180910390f35b3480156104ad57600080fd5b506104b6610fa0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104f65780820151818401526020810190506104db565b50505050905090810190601f1680156105235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561053d57600080fd5b50610546610fd9565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561058957808201518184015260208101905061056e565b505050509050019250505060405180910390f35b3480156105a957600080fd5b506105cb600480360381019080803560ff16906020019092919050505061127c565b005b3480156105d957600080fd5b5061061b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506112fb565b005b34801561062957600080fd5b5061067e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115b3565b005b34801561068c57600080fd5b50610701600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117e2565b005b34801561070f57600080fd5b50610718611b77565b604051808260ff1660ff16815260200191505060405180910390f35b34801561074057600080fd5b50610749611b8e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561078957808201518184015260208101905061076e565b50505050905090810190601f1680156107b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156108cb57600080fd5b6108d8858585855a611bc7565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561091c57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156109705750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561097b57600080fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156109fe57600080fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b9a57600080fd5b8060ff1660016002540310151515610bb157600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610c4a57600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055508060ff16600360009054906101000a900460ff1660ff16141515610de157610de08161127c565b5b505050565b600181565b610df58484611cc4565b610dff8282611f54565b50505050565b606080600080600254604051908082528060200260200182016040528015610e3c5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610f9757808383815181101515610eec57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610ea7565b82935050505090565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156110eb576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611047565b8260405190808252806020026020018201604052801561111a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611273578181848151811015156111c957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611184565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112b657600080fd5b6002548160ff16111515156112ca57600080fd5b60018160ff16101515156112dd57600080fd5b80600360006101000a81548160ff021916908360ff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561133557600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156113895750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561139457600080fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561141857600080fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600081548092919060010191905055508060ff16600360009054906101000a900460ff1660ff161415156115af576115ae8161127c565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115ed57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561168557600080fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561181c57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156118705750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561187b57600080fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156118ff57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561199857600080fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600360009054906101000a900460ff16905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b60008060006002811115611bd757fe5b846002811115611be357fe5b1415611bfc57611bf587878786612092565b9150611cba565b60016002811115611c0957fe5b846002811115611c1557fe5b1415611c2d57611c268786856120ab565b9150611cb9565b611c36856120c2565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600080600080600360009054906101000a900460ff1660ff16141515611ce957600080fd5b84518460ff1611151515611cfc57600080fd5b60018460ff1610151515611d0f57600080fd5b60019250600091505b8451821015611eac578482815181101515611d2f57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015611d8f5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611d9a57600080fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611e1e57600080fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050611d18565b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550845160028190555083600360006101000a81548160ff021916908360ff1602179055505050505050565b6000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611fd857600080fd5b6001600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff1614151561208e5761208282825a6120ab565b151561208d57600080fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820320bc4a9d7df05e83245d3a6f7c0c117f907d8577ab1a6fb3eb23fc392c0a32b0029", + "sourceMap": "322:674:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;322:674:2;;;;;;;", + "deployedSourceMap": "322:674:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4841:129:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4841:129:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2522:377:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2522:377:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1235:391;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1235:391:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:55:8;;;;;;;;;;;;;;;;;;;;;;;;;;;2776:573:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2776:573:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:9;;;;;;;;;;;;;;;;;;;;;;;;;;;693:301:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;693:301:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5052:458:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5052:458:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:9;;;;;;;;;;;;;;;;;401:46:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;401:46:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;401:46:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4423:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4423:738:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:8;;;;;;;;;;;;;;;;;4398:318:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4398:318:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1906:528;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1906:528:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1887:299:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1887:299:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3683:526:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3683:526:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4722:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4722:113:9;;;;;;;;;;;;;;;;;;;;;;;;;;;453:40:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;453:40:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;453:40:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4841:129:9;4918:4;4962:1;4945:6;:13;4952:5;4945:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;4938:25;;4841:129;;;:::o;2522:377:8:-;2654:12;2762:1;2739:7;:19;2747:10;2739:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2731:33;;;;;;;;2846:46;2854:2;2858:5;2865:4;2871:9;2882;2846:7;:46::i;:::-;2836:56;;2522:377;;;;;;:::o;1235:391::-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;1401:1:8;1390:6;1382:20;;;;:59;;;;;550:3;1406:35;;1414:6;1406:35;;;;1382:59;1374:68;;;;;;;;1520:1;1501:7;:15;1509:6;1501:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1493:29;;;;;;;;1550:7;:25;550:3;1550:25;;;;;;;;;;;;;;;;;;;;;;;;;1532:7;:15;1540:6;1532:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1613:6;1585:7;:25;550:3;1585:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1235:391;:::o;499:55::-;550:3;499:55;:::o;2776:573:9:-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;3000:10:9;2982:28;;2995:1;2982:10;;:14;:28;;2974:37;;;;;;;;3112:5;3091:26;;:6;:17;3098:9;3091:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3083:35;;;;;;;;3148:6;:13;3155:5;3148:13;;;;;;;;;;;;;;;;;;;;;;;;;3128:6;:17;3135:9;3128:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3187:1;3171:6;:13;3178:5;3171:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3198:10;;:12;;;;;;;;;;;;;;3291:10;3278:23;;:9;;;;;;;;;;;:23;;;;3274:68;;;3315:27;3331:10;3315:15;:27::i;:::-;3274:68;2776:573;;;:::o;287:54::-;337:3;287:54;:::o;693:301:2:-;798:32;810:7;819:10;798:11;:32::i;:::-;965:22;978:2;982:4;965:12;:22::i;:::-;693:301;;;;:::o;5052:458:9:-;5118:9;5143:22;5237:13;5264:20;5182:10;;5168:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5168:25:9;;;;5143:50;;5253:1;5237:17;;5287:6;:23;337:3;5287:23;;;;;;;;;;;;;;;;;;;;;;;;;5264:46;;5320:162;337:3;5326:31;;:12;:31;;;;5320:162;;;5388:12;5373:5;5379;5373:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;5429:6;:20;5436:12;5429:20;;;;;;;;;;;;;;;;;;;;;;;;;5414:35;;5463:8;;;;;;;5320:162;;;5498:5;5491:12;;5052:458;;;;:::o;401:46:8:-;;;;;;;;;;;;;;;;;;;;:::o;4423:738::-;4490:9;4549:19;4582:21;4782:22;4571:1;4549:23;;4606:7;:25;550:3;4606:25;;;;;;;;;;;;;;;;;;;;;;;;;4582:49;;4641:132;550:3;4647:33;;:13;:33;;;;4641:132;;;4712:7;:22;4720:13;4712:22;;;;;;;;;;;;;;;;;;;;;;;;;4696:38;;4748:14;;;;;;;4641:132;;;4821:11;4807:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4807:26:8;;;;4782:51;;4891:1;4877:15;;4918:7;:25;550:3;4918:25;;;;;;;;;;;;;;;;;;;;;;;;;4902:41;;4953:180;550:3;4959:33;;:13;:33;;;;4953:180;;;5029:13;5008:5;5014:11;5008:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5072:7;:22;5080:13;5072:22;;;;;;;;;;;;;;;;;;;;;;;;;5056:38;;5108:14;;;;;;;4953:180;;;5149:5;5142:12;;4423:738;;;;:::o;4398:318:9:-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;4580:10:9;;4566;:24;;;;4558:33;;;;;;;;4675:1;4661:10;:15;;;;4653:24;;;;;;;;4699:10;4687:9;;:22;;;;;;;;;;;;;;;;;;4398:318;:::o;1906:528::-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;2076:1:9;2067:5;:10;;;;:38;;;;;337:3;2081:24;;:5;:24;;;;2067:38;2059:47;;;;;;;;2181:1;2164:6;:13;2171:5;2164:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2156:27;;;;;;;;2209:6;:23;337:3;2209:23;;;;;;;;;;;;;;;;;;;;;;;;;2193:6;:13;2200:5;2193:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2268:5;2242:6;:23;337:3;2242:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2283:10;;:12;;;;;;;;;;;;;2376:10;2363:23;;:9;;;;;;;;;;;:23;;;;2359:68;;;2400:27;2416:10;2400:15;:27::i;:::-;2359:68;1906:528;;:::o;1887:299:8:-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;2095:6:8;2064:38;;:7;:19;2072:10;2064:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2056:47;;;;;;;;2135:7;:15;2143:6;2135:15;;;;;;;;;;;;;;;;;;;;;;;;;2113:7;:19;2121:10;2113:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2178:1;2160:7;:15;2168:6;2160:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1887:299;;:::o;3683:526:9:-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;3866:1:9;3854:8;:13;;;;:44;;;;;337:3;3871:27;;:8;:27;;;;3854:44;3846:53;;;;;;;;3977:1;3957:6;:16;3964:8;3957:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;3949:30;;;;;;;;4080:8;4059:29;;:6;:17;4066:9;4059:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4051:38;;;;;;;;4118:6;:16;4125:8;4118:16;;;;;;;;;;;;;;;;;;;;;;;;;4099:6;:16;4106:8;4099:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4164:8;4144:6;:17;4151:9;4144:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4201:1;4182:6;:16;4189:8;4182:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;3683:526;;;:::o;4722:113::-;4791:5;4819:9;;;;;;;;;;;4812:16;;4722:113;:::o;453:40:8:-;;;;;;;;;;;;;;;;;;;;:::o;2905:548::-;3036:12;3307:19;3081;3068:32;;;;;;;;:9;:32;;;;;;;;;3064:383;;;3124:35;3136:2;3140:5;3147:4;3153:5;3124:11;:35::i;:::-;3114:45;;3064:383;;;3191:27;3178:40;;;;;;;;:9;:40;;;;;;;;;3174:273;;;3242:36;3262:2;3266:4;3272:5;3242:19;:36::i;:::-;3232:46;;3174:273;;;3329:19;3343:4;3329:13;:19::i;:::-;3307:41;;3387:1;3372:11;:16;;;;3362:26;;3407:29;3424:11;3407:29;;;;;;;;;;;;;;;;;;;;;;3174:273;3064:383;2905:548;;;;;;;;:::o;641:1025:9:-;1132:20;1185:9;1284:13;875:1;862:9;;;;;;;;;;;:14;;;854:23;;;;;;;;984:7;:14;970:10;:28;;;;962:37;;;;;;;;1083:1;1069:10;:15;;;;1061:24;;;;;;;;337:3;1132:38;;1197:1;1185:13;;1180:363;1204:7;:14;1200:1;:18;1180:363;;;1300:7;1308:1;1300:10;;;;;;;;;;;;;;;;;;1284:26;;1341:1;1332:5;:10;;;;:38;;;;;337:3;1346:24;;:5;:24;;;;1332:38;1324:47;;;;;;;;1454:1;1437:6;:13;1444:5;1437:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1429:27;;;;;;;;1493:5;1470:6;:20;1477:12;1470:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1527:5;1512:20;;1220:3;;;;;;;1180:363;;;337:3;1552:6;:20;1559:12;1552:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1613:7;:14;1600:10;:27;;;;1649:10;1637:9;;:22;;;;;;;;;;;;;;;;;;641:1025;;;;;:::o;735:333:8:-;849:1;820:7;:25;550:3;820:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;812:39;;;;;;;;550:3;861:7;:25;550:3;861:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;925:1;919:2;:7;;;;915:146;;;1020:40;1040:2;1044:4;1050:9;1020:19;:40::i;:::-;1012:49;;;;;;;;915:146;735:333;;:::o;3459:309::-;3568:12;3750:1;3747;3740:4;3734:11;3727:4;3721;3717:15;3710:5;3706:2;3699:5;3694:58;3683:69;;3669:93;;;;;;:::o;3774:303::-;3876:12;4059:1;4056;4049:4;4043:11;4036:4;4030;4026:15;4022:2;4015:5;4002:59;3991:70;;3977:94;;;;;:::o;4083:261::-;4152:19;4322:4;4316:11;4309:4;4303;4299:15;4296:1;4289:39;4274:54;;4260:78;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./Module.sol\";\nimport \"./ModuleManager.sol\";\nimport \"./OwnerManager.sol\";\n\n\n/// @title Gnosis Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n/// @author Stefan George - \ncontract GnosisSafe is ModuleManager, OwnerManager {\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n /// @param to Contract address for optional delegate call.\n /// @param data Data payload for optional delegate call.\n function setup(address[] _owners, uint8 _threshold, address to, bytes data)\n public\n {\n setupOwners(_owners, _threshold);\n // As setupOwners can only be called if the contract has not been initialized we don't need a check for setupModules\n setupModules(to, data);\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "exportedSymbols": { "GnosisSafe": [ - 39 + 63 ] }, - "id": 40, + "id": 64, "nodeType": "SourceUnit", "nodes": [ { - "id": 8, + "id": 32, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:1" + "src": "0:23:2" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "./Module.sol", - "id": 9, + "id": 33, "nodeType": "ImportDirective", - "scope": 40, - "sourceUnit": 622, - "src": "24:22:1", + "scope": 64, + "sourceUnit": 751, + "src": "24:22:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "./ModuleManager.sol", - "id": 10, + "id": 34, "nodeType": "ImportDirective", - "scope": 40, - "sourceUnit": 972, - "src": "47:29:1", + "scope": 64, + "sourceUnit": 1101, + "src": "47:29:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "./OwnerManager.sol", - "id": 11, + "id": 35, "nodeType": "ImportDirective", - "scope": 40, - "sourceUnit": 1344, - "src": "77:28:1", + "scope": 64, + "sourceUnit": 1473, + "src": "77:28:2", "symbolAliases": [], "unitAlias": "" }, @@ -366,62 +366,62 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 12, + "id": 36, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 971, - "src": "345:13:1", + "referencedDeclaration": 1100, + "src": "345:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } }, - "id": 13, + "id": 37, "nodeType": "InheritanceSpecifier", - "src": "345:13:1" + "src": "345:13:2" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 14, + "id": 38, "name": "OwnerManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1343, - "src": "360:12:1", + "referencedDeclaration": 1472, + "src": "360:12:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1343", + "typeIdentifier": "t_contract$_OwnerManager_$1472", "typeString": "contract OwnerManager" } }, - "id": 15, + "id": 39, "nodeType": "InheritanceSpecifier", - "src": "360:12:1" + "src": "360:12:2" } ], "contractDependencies": [ - 971, - 1343, - 1359 + 1100, + 1472, + 1619 ], "contractKind": "contract", "documentation": "@title Gnosis Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n @author Stefan George - ", "fullyImplemented": true, - "id": 39, + "id": 63, "linearizedBaseContracts": [ - 39, - 1343, - 971, - 1359 + 63, + 1472, + 1100, + 1619 ], "name": "GnosisSafe", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 37, + "id": 61, "nodeType": "Block", - "src": "788:206:1", + "src": "788:206:2", "statements": [ { "expression": { @@ -429,12 +429,12 @@ "arguments": [ { "argumentTypes": null, - "id": 28, + "id": 52, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 18, - "src": "810:7:1", + "referencedDeclaration": 42, + "src": "810:7:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -442,12 +442,12 @@ }, { "argumentTypes": null, - "id": 29, + "id": 53, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "819:10:1", + "referencedDeclaration": 44, + "src": "819:10:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -465,18 +465,18 @@ "typeString": "uint8" } ], - "id": 27, + "id": 51, "name": "setupOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1083, - "src": "798:11:1", + "referencedDeclaration": 1212, + "src": "798:11:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint8_$returns$__$", "typeString": "function (address[] memory,uint8)" } }, - "id": 30, + "id": 54, "isConstant": false, "isLValue": false, "isPure": false, @@ -484,15 +484,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "798:32:1", + "src": "798:32:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 31, + "id": 55, "nodeType": "ExpressionStatement", - "src": "798:32:1" + "src": "798:32:2" }, { "expression": { @@ -500,12 +500,12 @@ "arguments": [ { "argumentTypes": null, - "id": 33, + "id": 57, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 22, - "src": "978:2:1", + "referencedDeclaration": 46, + "src": "978:2:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -513,12 +513,12 @@ }, { "argumentTypes": null, - "id": 34, + "id": 58, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "982:4:1", + "referencedDeclaration": 48, + "src": "982:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -536,18 +536,18 @@ "typeString": "bytes memory" } ], - "id": 32, + "id": 56, "name": "setupModules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "965:12:1", + "referencedDeclaration": 815, + "src": "965:12:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,bytes memory)" } }, - "id": 35, + "id": 59, "isConstant": false, "isLValue": false, "isPure": false, @@ -555,20 +555,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "965:22:1", + "src": "965:22:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 36, + "id": 60, "nodeType": "ExpressionStatement", - "src": "965:22:1" + "src": "965:22:2" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.", - "id": 38, + "id": 62, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -576,16 +576,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 25, + "id": 49, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 18, + "id": 42, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 38, - "src": "708:17:1", + "scope": 62, + "src": "708:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -594,19 +594,19 @@ }, "typeName": { "baseType": { - "id": 16, + "id": 40, "name": "address", "nodeType": "ElementaryTypeName", - "src": "708:7:1", + "src": "708:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 17, + "id": 41, "length": null, "nodeType": "ArrayTypeName", - "src": "708:9:1", + "src": "708:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -617,11 +617,11 @@ }, { "constant": false, - "id": 20, + "id": 44, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 38, - "src": "727:16:1", + "scope": 62, + "src": "727:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -629,10 +629,10 @@ "typeString": "uint8" }, "typeName": { - "id": 19, + "id": 43, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "727:5:1", + "src": "727:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -643,11 +643,11 @@ }, { "constant": false, - "id": 22, + "id": 46, "name": "to", "nodeType": "VariableDeclaration", - "scope": 38, - "src": "745:10:1", + "scope": 62, + "src": "745:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -655,10 +655,10 @@ "typeString": "address" }, "typeName": { - "id": 21, + "id": 45, "name": "address", "nodeType": "ElementaryTypeName", - "src": "745:7:1", + "src": "745:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -669,11 +669,11 @@ }, { "constant": false, - "id": 24, + "id": 48, "name": "data", "nodeType": "VariableDeclaration", - "scope": 38, - "src": "757:10:1", + "scope": 62, + "src": "757:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -681,10 +681,10 @@ "typeString": "bytes" }, "typeName": { - "id": 23, + "id": 47, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "757:5:1", + "src": "757:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -694,78 +694,78 @@ "visibility": "internal" } ], - "src": "707:61:1" + "src": "707:61:2" }, "payable": false, "returnParameters": { - "id": 26, + "id": 50, "nodeType": "ParameterList", "parameters": [], - "src": "788:0:1" + "src": "788:0:2" }, - "scope": 39, - "src": "693:301:1", + "scope": 63, + "src": "693:301:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 40, - "src": "322:674:1" + "scope": 64, + "src": "322:674:2" } ], - "src": "0:997:1" + "src": "0:997:2" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "exportedSymbols": { "GnosisSafe": [ - 39 + 63 ] }, - "id": 40, + "id": 64, "nodeType": "SourceUnit", "nodes": [ { - "id": 8, + "id": 32, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:1" + "src": "0:23:2" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "./Module.sol", - "id": 9, + "id": 33, "nodeType": "ImportDirective", - "scope": 40, - "sourceUnit": 622, - "src": "24:22:1", + "scope": 64, + "sourceUnit": 751, + "src": "24:22:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "./ModuleManager.sol", - "id": 10, + "id": 34, "nodeType": "ImportDirective", - "scope": 40, - "sourceUnit": 972, - "src": "47:29:1", + "scope": 64, + "sourceUnit": 1101, + "src": "47:29:2", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "./OwnerManager.sol", - "id": 11, + "id": 35, "nodeType": "ImportDirective", - "scope": 40, - "sourceUnit": 1344, - "src": "77:28:1", + "scope": 64, + "sourceUnit": 1473, + "src": "77:28:2", "symbolAliases": [], "unitAlias": "" }, @@ -775,62 +775,62 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 12, + "id": 36, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 971, - "src": "345:13:1", + "referencedDeclaration": 1100, + "src": "345:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } }, - "id": 13, + "id": 37, "nodeType": "InheritanceSpecifier", - "src": "345:13:1" + "src": "345:13:2" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 14, + "id": 38, "name": "OwnerManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1343, - "src": "360:12:1", + "referencedDeclaration": 1472, + "src": "360:12:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1343", + "typeIdentifier": "t_contract$_OwnerManager_$1472", "typeString": "contract OwnerManager" } }, - "id": 15, + "id": 39, "nodeType": "InheritanceSpecifier", - "src": "360:12:1" + "src": "360:12:2" } ], "contractDependencies": [ - 971, - 1343, - 1359 + 1100, + 1472, + 1619 ], "contractKind": "contract", "documentation": "@title Gnosis Safe - A multisignature wallet with support for modules and owners. This contract needs to be extented to add functionality to execute transactions.\n @author Stefan George - ", "fullyImplemented": true, - "id": 39, + "id": 63, "linearizedBaseContracts": [ - 39, - 1343, - 971, - 1359 + 63, + 1472, + 1100, + 1619 ], "name": "GnosisSafe", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 37, + "id": 61, "nodeType": "Block", - "src": "788:206:1", + "src": "788:206:2", "statements": [ { "expression": { @@ -838,12 +838,12 @@ "arguments": [ { "argumentTypes": null, - "id": 28, + "id": 52, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 18, - "src": "810:7:1", + "referencedDeclaration": 42, + "src": "810:7:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -851,12 +851,12 @@ }, { "argumentTypes": null, - "id": 29, + "id": 53, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "819:10:1", + "referencedDeclaration": 44, + "src": "819:10:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -874,18 +874,18 @@ "typeString": "uint8" } ], - "id": 27, + "id": 51, "name": "setupOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1083, - "src": "798:11:1", + "referencedDeclaration": 1212, + "src": "798:11:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint8_$returns$__$", "typeString": "function (address[] memory,uint8)" } }, - "id": 30, + "id": 54, "isConstant": false, "isLValue": false, "isPure": false, @@ -893,15 +893,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "798:32:1", + "src": "798:32:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 31, + "id": 55, "nodeType": "ExpressionStatement", - "src": "798:32:1" + "src": "798:32:2" }, { "expression": { @@ -909,12 +909,12 @@ "arguments": [ { "argumentTypes": null, - "id": 33, + "id": 57, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 22, - "src": "978:2:1", + "referencedDeclaration": 46, + "src": "978:2:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -922,12 +922,12 @@ }, { "argumentTypes": null, - "id": 34, + "id": 58, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "982:4:1", + "referencedDeclaration": 48, + "src": "982:4:2", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -945,18 +945,18 @@ "typeString": "bytes memory" } ], - "id": 32, + "id": 56, "name": "setupModules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 686, - "src": "965:12:1", + "referencedDeclaration": 815, + "src": "965:12:2", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,bytes memory)" } }, - "id": 35, + "id": 59, "isConstant": false, "isLValue": false, "isPure": false, @@ -964,20 +964,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "965:22:1", + "src": "965:22:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 36, + "id": 60, "nodeType": "ExpressionStatement", - "src": "965:22:1" + "src": "965:22:2" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.\n @param to Contract address for optional delegate call.\n @param data Data payload for optional delegate call.", - "id": 38, + "id": 62, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -985,16 +985,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 25, + "id": 49, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 18, + "id": 42, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 38, - "src": "708:17:1", + "scope": 62, + "src": "708:17:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1003,19 +1003,19 @@ }, "typeName": { "baseType": { - "id": 16, + "id": 40, "name": "address", "nodeType": "ElementaryTypeName", - "src": "708:7:1", + "src": "708:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 17, + "id": 41, "length": null, "nodeType": "ArrayTypeName", - "src": "708:9:1", + "src": "708:9:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1026,11 +1026,11 @@ }, { "constant": false, - "id": 20, + "id": 44, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 38, - "src": "727:16:1", + "scope": 62, + "src": "727:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1038,10 +1038,10 @@ "typeString": "uint8" }, "typeName": { - "id": 19, + "id": 43, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "727:5:1", + "src": "727:5:2", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1052,11 +1052,11 @@ }, { "constant": false, - "id": 22, + "id": 46, "name": "to", "nodeType": "VariableDeclaration", - "scope": 38, - "src": "745:10:1", + "scope": 62, + "src": "745:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1064,10 +1064,10 @@ "typeString": "address" }, "typeName": { - "id": 21, + "id": 45, "name": "address", "nodeType": "ElementaryTypeName", - "src": "745:7:1", + "src": "745:7:2", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1078,11 +1078,11 @@ }, { "constant": false, - "id": 24, + "id": 48, "name": "data", "nodeType": "VariableDeclaration", - "scope": 38, - "src": "757:10:1", + "scope": 62, + "src": "757:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1090,10 +1090,10 @@ "typeString": "bytes" }, "typeName": { - "id": 23, + "id": 47, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "757:5:1", + "src": "757:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1103,33 +1103,33 @@ "visibility": "internal" } ], - "src": "707:61:1" + "src": "707:61:2" }, "payable": false, "returnParameters": { - "id": 26, + "id": 50, "nodeType": "ParameterList", "parameters": [], - "src": "788:0:1" + "src": "788:0:2" }, - "scope": 39, - "src": "693:301:1", + "scope": 63, + "src": "693:301:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 40, - "src": "322:674:1" + "scope": 64, + "src": "322:674:2" } ], - "src": "0:997:1" + "src": "0:997:2" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-16T10:51:14.736Z" + "updatedAt": "2018-05-27T11:12:45.575Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/GnosisSafePersonalEdition.json b/safe-contracts/build/contracts/GnosisSafePersonalEdition.json index 6f71f64c..970909dc 100644 --- a/safe-contracts/build/contracts/GnosisSafePersonalEdition.json +++ b/safe-contracts/build/contracts/GnosisSafePersonalEdition.json @@ -365,6 +365,10 @@ "name": "gasPrice", "type": "uint256" }, + { + "name": "gasToken", + "type": "address" + }, { "name": "v", "type": "uint8[]" @@ -378,7 +382,7 @@ "type": "bytes32[]" } ], - "name": "execPayTransaction", + "name": "execAndPayTransaction", "outputs": [], "payable": false, "stateMutability": "nonpayable", @@ -469,6 +473,10 @@ "name": "gasPrice", "type": "uint256" }, + { + "name": "gasToken", + "type": "address" + }, { "name": "_nonce", "type": "uint256" @@ -486,51 +494,62 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50612b38806100206000396000f300608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a51b01c1461012a5780632f54bf6e146102b1578063468721a71461030c5780634db5d039146103c4578063610b5925146104a85780637de7edef146104eb57806385e332cd1461052e57806386040aa9146105855780638cff6355146105f5578063a04222e11461064c578063a0e67e2b14610725578063a3f4df7e14610791578063ad8a045014610821578063affed0e01461086c578063b2494df314610897578063b7f3358d14610903578063b91a667f14610933578063c4ca3a9c14610983578063e009cfde14610a37578063e318b52b14610a9a578063e75235b814610b1d578063ffa1ad7414610b4e575b005b34801561013657600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610bde565b005b3480156102bd57600080fd5b506102f2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ccb565b604051808215151515815260200191505060405180910390f35b34801561031857600080fd5b506103aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610d4d565b604051808215151515815260200191505060405180910390f35b3480156103d057600080fd5b5061048a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050610dea565b60405180826000191660001916815260200191505060405180910390f35b3480156104b457600080fd5b506104e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611021565b005b3480156104f757600080fd5b5061052c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061129e565b005b34801561053a57600080fd5b50610543611341565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059157600080fd5b506105f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611346565b005b34801561060157600080fd5b5061060a6115cc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561065857600080fd5b5061072360048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506115d1565b005b34801561073157600080fd5b5061073a6115eb565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561077d578082015181840152602081019050610762565b505050509050019250505060405180910390f35b34801561079d57600080fd5b506107a6611786565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107e65780820151818401526020810190506107cb565b50505050905090810190601f1680156108135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561082d57600080fd5b5061085660048036038101908080359060200190929190803590602001909291905050506117bf565b6040518082815260200191505060405180910390f35b34801561087857600080fd5b506108816117d4565b6040518082815260200191505060405180910390f35b3480156108a357600080fd5b506108ac6117da565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156108ef5780820151818401526020810190506108d4565b505050509050019250505060405180910390f35b34801561090f57600080fd5b50610931600480360381019080803560ff169060200190929190505050611a81565b005b34801561093f57600080fd5b50610981600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611b00565b005b34801561098f57600080fd5b50610a21600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611db8565b6040518082815260200191505060405180910390f35b348015610a4357600080fd5b50610a98600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e1e565b005b348015610aa657600080fd5b50610b1b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612051565b005b348015610b2957600080fd5b50610b326123e6565b604051808260ff1660ff16815260200191505060405180910390f35b348015610b5a57600080fd5b50610b636123fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ba3578082015181840152602081019050610b88565b50505050905090810190601f168015610bd05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000805a9150610c01610bf98d8d8d8d8d8d8d600554610dea565b868686612436565b60056000815480929190600101919050555087612af85a0310151515610c2657600080fd5b610c338c8c8c8c8c6125fd565b1515610c66577facfdb444727b3b8994850a379f4bfc8a5ca665a55604339199daafa16f687b1a60405160405180910390a15b610c725a8303886117bf565b90503273ffffffffffffffffffffffffffffffffffffffff166108fc8783029081150290604051600060405180830381858888f19350505050158015610cbc573d6000803e3d6000fd5b50505050505050505050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610dd357600080fd5b610de0858585855a6125fd565b9050949350505050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f010000000000000000000000000000000000000000000000000000000000000002308b8b8b8b8b8b8b8b604051808c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140188815260200187805190602001908083835b602083101515610f8e5780518252602082019150602081019050602083039250610f69565b6001836020036101000a038019825116818451168082178552505050505050905001866002811115610fbc57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018581526020018481526020018381526020018281526020019b5050505050505050505050506040518091039020905098975050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561105b57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156110af5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156110ba57600080fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561113e57600080fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112d857600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156112fe57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561138057600080fd5b8060ff166001600354031015151561139757600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561143057600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060ff16600460009054906101000a900460ff1660ff161415156115c7576115c681611a81565b5b505050565b600181565b6115db84846126fa565b6115e5828261298b565b50505050565b6060806000806003546040519080825280602002602001820160405280156116225781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561177d578083838151811015156116d257fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050818060010192505061168d565b82935050505090565b6040805190810160405280601c81526020017f476e6f736973205361666520506572736f6e616c2045646974696f6e0000000081525081565b6000615208612af88385010101905092915050565b60055481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156118ee57600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611849565b8260405190808252806020026020018201604052801561191d5781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611a78578181848151811015156119cd57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611988565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611abb57600080fd5b6003548160ff1611151515611acf57600080fd5b60018160ff1610151515611ae257600080fd5b80600460006101000a81548160ff021916908360ff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b3a57600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611b8e5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611b9957600080fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611c1d57600080fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060ff16600460009054906101000a900460ff1660ff16141515611db457611db381611a81565b5b5050565b6000803073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611df557600080fd5b5a9050611e05868686865a6125fd565b1515611e1057600080fd5b5a8103915050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e5857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611ef157600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561208b57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156120df5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156120ea57600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561216e57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561220757600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600460009054906101000a900460ff16905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000809250600090505b600460009054906101000a900460ff1660ff168110156125f457600187878381518110151561246e57fe5b90602001906020020151878481518110151561248657fe5b90602001906020020151878581518110151561249e57fe5b90602001906020020151604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015612519573d6000803e3d6000fd5b5050506020604051035191506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156125aa57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161115156125e457600080fd5b8192508080600101915050612443565b50505050505050565b6000806000600281111561260d57fe5b84600281111561261957fe5b14156126325761262b87878786612aca565b91506126f0565b6001600281111561263f57fe5b84600281111561264b57fe5b14156126635761265c878685612ae3565b91506126ef565b61266c85612afa565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600080600080600460009054906101000a900460ff1660ff1614151561271f57600080fd5b84518460ff161115151561273257600080fd5b60018460ff161015151561274557600080fd5b60019250600091505b84518210156128e257848281518110151561276557fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141580156127c55750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156127d057600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561285457600080fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550809250818060010192505061274e565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550845160038190555083600460006101000a81548160ff021916908360ff1602179055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612a1057600080fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515612ac657612aba82825a612ae3565b1515612ac557600080fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820ae084368703023e0af23298ba3bdd986ab72eb9889663044cee13cf3e0ae154c0029", - "deployedBytecode": "0x608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630a51b01c1461012a5780632f54bf6e146102b1578063468721a71461030c5780634db5d039146103c4578063610b5925146104a85780637de7edef146104eb57806385e332cd1461052e57806386040aa9146105855780638cff6355146105f5578063a04222e11461064c578063a0e67e2b14610725578063a3f4df7e14610791578063ad8a045014610821578063affed0e01461086c578063b2494df314610897578063b7f3358d14610903578063b91a667f14610933578063c4ca3a9c14610983578063e009cfde14610a37578063e318b52b14610a9a578063e75235b814610b1d578063ffa1ad7414610b4e575b005b34801561013657600080fd5b506102af600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610bde565b005b3480156102bd57600080fd5b506102f2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ccb565b604051808215151515815260200191505060405180910390f35b34801561031857600080fd5b506103aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610d4d565b604051808215151515815260200191505060405180910390f35b3480156103d057600080fd5b5061048a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050610dea565b60405180826000191660001916815260200191505060405180910390f35b3480156104b457600080fd5b506104e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611021565b005b3480156104f757600080fd5b5061052c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061129e565b005b34801561053a57600080fd5b50610543611341565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059157600080fd5b506105f3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611346565b005b34801561060157600080fd5b5061060a6115cc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561065857600080fd5b5061072360048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506115d1565b005b34801561073157600080fd5b5061073a6115eb565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561077d578082015181840152602081019050610762565b505050509050019250505060405180910390f35b34801561079d57600080fd5b506107a6611786565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107e65780820151818401526020810190506107cb565b50505050905090810190601f1680156108135780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561082d57600080fd5b5061085660048036038101908080359060200190929190803590602001909291905050506117bf565b6040518082815260200191505060405180910390f35b34801561087857600080fd5b506108816117d4565b6040518082815260200191505060405180910390f35b3480156108a357600080fd5b506108ac6117da565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156108ef5780820151818401526020810190506108d4565b505050509050019250505060405180910390f35b34801561090f57600080fd5b50610931600480360381019080803560ff169060200190929190505050611a81565b005b34801561093f57600080fd5b50610981600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611b00565b005b34801561098f57600080fd5b50610a21600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611db8565b6040518082815260200191505060405180910390f35b348015610a4357600080fd5b50610a98600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e1e565b005b348015610aa657600080fd5b50610b1b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612051565b005b348015610b2957600080fd5b50610b326123e6565b604051808260ff1660ff16815260200191505060405180910390f35b348015610b5a57600080fd5b50610b636123fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ba3578082015181840152602081019050610b88565b50505050905090810190601f168015610bd05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000805a9150610c01610bf98d8d8d8d8d8d8d600554610dea565b868686612436565b60056000815480929190600101919050555087612af85a0310151515610c2657600080fd5b610c338c8c8c8c8c6125fd565b1515610c66577facfdb444727b3b8994850a379f4bfc8a5ca665a55604339199daafa16f687b1a60405160405180910390a15b610c725a8303886117bf565b90503273ffffffffffffffffffffffffffffffffffffffff166108fc8783029081150290604051600060405180830381858888f19350505050158015610cbc573d6000803e3d6000fd5b50505050505050505050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610dd357600080fd5b610de0858585855a6125fd565b9050949350505050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f010000000000000000000000000000000000000000000000000000000000000002308b8b8b8b8b8b8b8b604051808c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018b7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140188815260200187805190602001908083835b602083101515610f8e5780518252602082019150602081019050602083039250610f69565b6001836020036101000a038019825116818451168082178552505050505050905001866002811115610fbc57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018581526020018481526020018381526020018281526020019b5050505050505050505050506040518091039020905098975050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561105b57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156110af5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156110ba57600080fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561113e57600080fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112d857600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156112fe57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561138057600080fd5b8060ff166001600354031015151561139757600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561143057600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060ff16600460009054906101000a900460ff1660ff161415156115c7576115c681611a81565b5b505050565b600181565b6115db84846126fa565b6115e5828261298b565b50505050565b6060806000806003546040519080825280602002602001820160405280156116225781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561177d578083838151811015156116d257fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050818060010192505061168d565b82935050505090565b6040805190810160405280601c81526020017f476e6f736973205361666520506572736f6e616c2045646974696f6e0000000081525081565b6000615208612af88385010101905092915050565b60055481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156118ee57600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611849565b8260405190808252806020026020018201604052801561191d5781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611a78578181848151811015156119cd57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611988565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611abb57600080fd5b6003548160ff1611151515611acf57600080fd5b60018160ff1610151515611ae257600080fd5b80600460006101000a81548160ff021916908360ff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b3a57600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611b8e5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611b9957600080fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611c1d57600080fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060ff16600460009054906101000a900460ff1660ff16141515611db457611db381611a81565b5b5050565b6000803073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611df557600080fd5b5a9050611e05868686865a6125fd565b1515611e1057600080fd5b5a8103915050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e5857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611ef157600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561208b57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156120df5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156120ea57600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561216e57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561220757600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600460009054906101000a900460ff16905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000809250600090505b600460009054906101000a900460ff1660ff168110156125f457600187878381518110151561246e57fe5b90602001906020020151878481518110151561248657fe5b90602001906020020151878581518110151561249e57fe5b90602001906020020151604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015612519573d6000803e3d6000fd5b5050506020604051035191506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156125aa57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161115156125e457600080fd5b8192508080600101915050612443565b50505050505050565b6000806000600281111561260d57fe5b84600281111561261957fe5b14156126325761262b87878786612aca565b91506126f0565b6001600281111561263f57fe5b84600281111561264b57fe5b14156126635761265c878685612ae3565b91506126ef565b61266c85612afa565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600080600080600460009054906101000a900460ff1660ff1614151561271f57600080fd5b84518460ff161115151561273257600080fd5b60018460ff161015151561274557600080fd5b60019250600091505b84518210156128e257848281518110151561276557fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141580156127c55750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156127d057600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561285457600080fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550809250818060010192505061274e565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550845160038190555083600460006101000a81548160ff021916908360ff1602179055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612a1057600080fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515612ac657612aba82825a612ae3565b1515612ac557600080fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820ae084368703023e0af23298ba3bdd986ab72eb9889663044cee13cf3e0ae154c0029", - "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;;4841:129;;;:::o;2522:377:6:-;2654:12;2762:1;2739:7;:19;2747:10;2739:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2731:33;;;;;;;;2846:46;2854:2;2858:5;2865:4;2871:9;2882;2846:7;:46::i;:::-;2836:56;;2522:377;;;;;;:::o;5150:424:2:-;5435:7;5480:4;5475:10;;5492:1;5487:7;;5496:4;5502:2;5506:5;5513:4;5519:9;5530;5541:7;5550:8;5560:6;5465:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;5465:102:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5458:109;;5150:424;;;;;;;;;;:::o;1235:391:6:-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;1401:1:6;1390:6;1382:20;;;;:59;;;;;550:3;1406:35;;1414:6;1406:35;;;;1382:59;1374:68;;;;;;;;1520:1;1501:7;:15;1509:6;1501:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1493:29;;;;;;;;1550:7;:25;550:3;1550:25;;;;;;;;;;;;;;;;;;;;;;;;;1532:7;:15;1540:6;1532:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1613:6;1585:7;:25;550:3;1585:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1235:391;:::o;626:208:4:-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;791:1:4;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o;499:55:6:-;550:3;499:55;:::o;2776:573:7:-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;3000:10:7;2982:28;;2995:1;2982:10;;:14;:28;;2974:37;;;;;;;;3112:5;3091:26;;:6;:17;3098:9;3091:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3083:35;;;;;;;;3148:6;:13;3155:5;3148:13;;;;;;;;;;;;;;;;;;;;;;;;;3128:6;:17;3135:9;3128:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3187:1;3171:6;:13;3178:5;3171:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3198:10;;:12;;;;;;;;;;;;;;3291:10;3278:23;;:9;;;;;;;;;;;:23;;;;3274:68;;;3315:27;3331:10;3315:15;:27::i;:::-;3274:68;2776:573;;;:::o;287:54::-;337:3;287:54;:::o;693:301:1:-;798:32;810:7;819:10;798:11;:32::i;:::-;965:22;978:2;982:4;965:12;:22::i;:::-;693:301;;;;:::o;5052:458:7:-;5118:9;5143:22;5237:13;5264:20;5182:10;;5168:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5168:25:7;;;;5143:50;;5253:1;5237:17;;5287:6;:23;337:3;5287:23;;;;;;;;;;;;;;;;;;;;;;;;;5264:46;;5320:162;337:3;5326:31;;:12;:31;;;;5320:162;;;5388:12;5373:5;5379;5373:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;5429:6;:20;5436:12;5429:20;;;;;;;;;;;;;;;;;;;;;;;;;5414:35;;5463:8;;;;;;;5320:162;;;5498:5;5491:12;;5052:458;;;;:::o;382:60:2:-;;;;;;;;;;;;;;;;;;;;:::o;2878:209::-;2987:7;545:5;602;3033:7;3018:12;:22;:42;:62;3011:69;;2878:209;;;;:::o;644:20::-;;;;:::o;4423:738:6:-;4490:9;4549:19;4582:21;4782:22;4571:1;4549:23;;4606:7;:25;550:3;4606:25;;;;;;;;;;;;;;;;;;;;;;;;;4582:49;;4641:132;550:3;4647:33;;:13;:33;;;;4641:132;;;4712:7;:22;4720:13;4712:22;;;;;;;;;;;;;;;;;;;;;;;;;4696:38;;4748:14;;;;;;;4641:132;;;4821:11;4807:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4807:26:6;;;;4782:51;;4891:1;4877:15;;4918:7;:25;550:3;4918:25;;;;;;;;;;;;;;;;;;;;;;;;;4902:41;;4953:180;550:3;4959:33;;:13;:33;;;;4953:180;;;5029:13;5008:5;5014:11;5008:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5072:7;:22;5080:13;5072:22;;;;;;;;;;;;;;;;;;;;;;;;;5056:38;;5108:14;;;;;;;4953:180;;;5149:5;5142:12;;4423:738;;;;:::o;4398:318:7:-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;4580:10:7;;4566;:24;;;;4558:33;;;;;;;;4675:1;4661:10;:15;;;;4653:24;;;;;;;;4699:10;4687:9;;:22;;;;;;;;;;;;;;;;;;4398:318;:::o;1906:528::-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;2076:1:7;2067:5;:10;;;;:38;;;;;337:3;2081:24;;:5;:24;;;;2067:38;2059:47;;;;;;;;2181:1;2164:6;:13;2171:5;2164:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2156:27;;;;;;;;2209:6;:23;337:3;2209:23;;;;;;;;;;;;;;;;;;;;;;;;;2193:6;:13;2200:5;2193:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2268:5;2242:6;:23;337:3;2242:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2283:10;;:12;;;;;;;;;;;;;2376:10;2363:23;;:9;;;;;;;;;;;:23;;;;2359:68;;;2400:27;2416:10;2400:15;:27::i;:::-;2359:68;1906:528;;:::o;3786:299:2:-;3925:7;3948:16;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;3967:9:2;3948:28;;3994:46;4002:2;4006:5;4013:4;4019:9;4030;3994:7;:46::i;:::-;3986:55;;;;;;;;4069:9;4058:8;:20;4051:27;;3786:299;;;;;;;:::o;1887::6:-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;2095:6:6;2064:38;;:7;:19;2072:10;2064:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2056:47;;;;;;;;2135:7;:15;2143:6;2135:15;;;;;;;;;;;;;;;;;;;;;;;;;2113:7;:19;2121:10;2113:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2178:1;2160:7;:15;2168:6;2160:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1887:299;;:::o;3683:526:7:-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;3866:1:7;3854:8;:13;;;;:44;;;;;337:3;3871:27;;:8;:27;;;;3854:44;3846:53;;;;;;;;3977:1;3957:6;:16;3964:8;3957:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;3949:30;;;;;;;;4080:8;4059:29;;:6;:17;4066:9;4059:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4051:38;;;;;;;;4118:6;:16;4125:8;4118:16;;;;;;;;;;;;;;;;;;;;;;;;;4099:6;:16;4106:8;4099:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4164:8;4144:6;:17;4151:9;4144:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4201:1;4182:6;:16;4189:8;4182:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;3683:526;;;:::o;4722:113::-;4791:5;4819:9;;;;;;;;;;;4812:16;;4722:113;:::o;448:40:2:-;;;;;;;;;;;;;;;;;;;;:::o;4091:541::-;4257:17;4297:20;4327:9;4285:1;4257:30;;4397:1;4393:5;;4388:238;4404:9;;;;;;;;;;;4400:13;;:1;:13;4388:238;;;4449:33;4459:4;4465:1;4467;4465:4;;;;;;;;;;;;;;;;;;4471:1;4473;4471:4;;;;;;;;;;;;;;;;;;4477:1;4479;4477:4;;;;;;;;;;;;;;;;;;4449:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4449:33:2;;;;;;;;4434:48;;4528:1;4504:6;:20;4511:12;4504:20;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;4496:34;;;;;;;;4567:9;4552:24;;:12;:24;;;4544:33;;;;;;;;4603:12;4591:24;;4415:3;;;;;;;4388:238;;;4091:541;;;;;;;:::o;2905:548:6:-;3036:12;3307:19;3081;3068:32;;;;;;;;:9;:32;;;;;;;;;3064:383;;;3124:35;3136:2;3140:5;3147:4;3153:5;3124:11;:35::i;:::-;3114:45;;3064:383;;;3191:27;3178:40;;;;;;;;:9;:40;;;;;;;;;3174:273;;;3242:36;3262:2;3266:4;3272:5;3242:19;:36::i;:::-;3232:46;;3174:273;;;3329:19;3343:4;3329:13;:19::i;:::-;3307:41;;3387:1;3372:11;:16;;;;3362:26;;3407:29;3424:11;3407:29;;;;;;;;;;;;;;;;;;;;;;3174:273;3064:383;2905:548;;;;;;;;:::o;641:1025:7:-;1132:20;1185:9;1284:13;875:1;862:9;;;;;;;;;;;:14;;;854:23;;;;;;;;984:7;:14;970:10;:28;;;;962:37;;;;;;;;1083:1;1069:10;:15;;;;1061:24;;;;;;;;337:3;1132:38;;1197:1;1185:13;;1180:363;1204:7;:14;1200:1;:18;1180:363;;;1300:7;1308:1;1300:10;;;;;;;;;;;;;;;;;;1284:26;;1341:1;1332:5;:10;;;;:38;;;;;337:3;1346:24;;:5;:24;;;;1332:38;1324:47;;;;;;;;1454:1;1437:6;:13;1444:5;1437:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1429:27;;;;;;;;1493:5;1470:6;:20;1477:12;1470:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1527:5;1512:20;;1220:3;;;;;;;1180:363;;;337:3;1552:6;:20;1559:12;1552:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1613:7;:14;1600:10;:27;;;;1649:10;1637:9;;:22;;;;;;;;;;;;;;;;;;641:1025;;;;;:::o;735:333:6:-;849:1;820:7;:25;550:3;820:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;812:39;;;;;;;;550:3;861:7;:25;550:3;861:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;925:1;919:2;:7;;;;915:146;;;1020:40;1040:2;1044:4;1050:9;1020:19;:40::i;:::-;1012:49;;;;;;;;915:146;735:333;;:::o;3459:309::-;3568:12;3750:1;3747;3740:4;3734:11;3727:4;3721;3717:15;3710:5;3706:2;3699:5;3694:58;3683:69;;3669:93;;;;;;:::o;3774:303::-;3876:12;4059:1;4056;4049:4;4043:11;4036:4;4030;4026:15;4022:2;4015:5;4002:59;3991:70;;3977:94;;;;;:::o;4083:261::-;4152:19;4322:4;4316:11;4309:4;4303;4299:15;4296:1;4289:39;4274:54;;4260:78;;;:::o", - "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 - \n/// @author Richard Meissner - \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 require(execute(to, value, data, operation, gasleft()));\n return startGas - gasleft();\n }\n\n function checkHash(bytes32 hash, uint8[] v, bytes32[] r, bytes32[] s)\n internal\n view\n {\n // There cannot be an owner with address 0.\n address lastOwner = address(0);\n address currentOwner;\n uint256 i;\n // Validate threshold is reached.\n for (i = 0; i < threshold; i++) {\n currentOwner = ecrecover(hash, v[i], r[i], s[i]);\n require(owners[currentOwner] != 0);\n require(currentOwner > lastOwner);\n lastOwner = currentOwner;\n }\n }\n\n /// @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.\n function getTransactionHash(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 safeTxGas, \n uint256 dataGas, \n uint256 gasPrice, \n uint256 _nonce\n )\n public\n view\n returns (bytes32)\n {\n return keccak256(byte(0x19), byte(0), this, to, value, data, operation, safeTxGas, dataGas, gasPrice, _nonce);\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50612e18806100206000396000f300608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806314148af21461012a5780632f54bf6e146102d1578063468721a71461032c578063610b5925146103e45780637de7edef1461042757806385e332cd1461046a57806386040aa9146104c15780638cff635514610531578063a04222e114610588578063a0e67e2b14610661578063a3f4df7e146106cd578063ad8a04501461075d578063affed0e0146107a8578063b2494df3146107d3578063b7f3358d1461083f578063b91a667f1461086f578063ba08ea24146108bf578063c4ca3a9c146109c3578063e009cfde14610a77578063e318b52b14610ada578063e75235b814610b5d578063ffa1ad7414610b8e575b005b34801561013657600080fd5b506102cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610c1e565b005b3480156102dd57600080fd5b50610312600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e41565b604051808215151515815260200191505060405180910390f35b34801561033857600080fd5b506103ca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610ec3565b604051808215151515815260200191505060405180910390f35b3480156103f057600080fd5b50610425600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f60565b005b34801561043357600080fd5b50610468600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111dd565b005b34801561047657600080fd5b5061047f611280565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104cd57600080fd5b5061052f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611285565b005b34801561053d57600080fd5b5061054661150b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059457600080fd5b5061065f60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611510565b005b34801561066d57600080fd5b5061067661152a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106b957808201518184015260208101905061069e565b505050509050019250505060405180910390f35b3480156106d957600080fd5b506106e26116c5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610722578082015181840152602081019050610707565b50505050905090810190601f16801561074f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561076957600080fd5b5061079260048036038101908080359060200190929190803590602001909291905050506116fe565b6040518082815260200191505060405180910390f35b3480156107b457600080fd5b506107bd611713565b6040518082815260200191505060405180910390f35b3480156107df57600080fd5b506107e8611719565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561082b578082015181840152602081019050610810565b505050509050019250505060405180910390f35b34801561084b57600080fd5b5061086d600480360381019080803560ff1690602001909291905050506119c0565b005b34801561087b57600080fd5b506108bd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611a3f565b005b3480156108cb57600080fd5b506109a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cf7565b60405180826000191660001916815260200191505060405180910390f35b3480156109cf57600080fd5b50610a61600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611fde565b6040518082815260200191505060405180910390f35b348015610a8357600080fd5b50610ad8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120fe565b005b348015610ae657600080fd5b50610b5b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612331565b005b348015610b6957600080fd5b50610b726126c6565b604051808260ff1660ff16815260200191505060405180910390f35b348015610b9a57600080fd5b50610ba36126dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610be3578082015181840152602081019050610bc8565b50505050905090810190601f168015610c105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008060005a9250610c44610c3c8f8f8f8f8f8f8f8f600554611cf7565b878787612716565b60056000815480929190600101919050555089612af85a0310151515610c6957600080fd5b610c768e8e8e8e8e6128dd565b1515610ca9577facfdb444727b3b8994850a379f4bfc8a5ca665a55604339199daafa16f687b1a60405160405180910390a15b6000881115610e3157610cbe5a84038a6116fe565b91508782029050600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610d46573273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d40573d6000803e3d6000fd5b50610e30565b8673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb32836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610de957600080fd5b505af1158015610dfd573d6000803e3d6000fd5b505050506040513d6020811015610e1357600080fd5b81019080805190602001909291905050501515610e2f57600080fd5b5b5b5050505050505050505050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610f4957600080fd5b610f56858585855a6128dd565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f9a57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610fee5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610ff957600080fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561107d57600080fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561121757600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561123d57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112bf57600080fd5b8060ff16600160035403101515156112d657600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561136f57600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060ff16600460009054906101000a900460ff1660ff1614151561150657611505816119c0565b5b505050565b600181565b61151a84846129da565b6115248282612c6b565b50505050565b6060806000806003546040519080825280602002602001820160405280156115615781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156116bc5780838381518110151561161157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506115cc565b82935050505090565b6040805190810160405280601c81526020017f476e6f736973205361666520506572736f6e616c2045646974696f6e0000000081525081565b6000615208612af88385010101905092915050565b60055481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561182d57600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611788565b8260405190808252806020026020018201604052801561185c5781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156119b75781818481518110151561190c57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506118c7565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119fa57600080fd5b6003548160ff1611151515611a0e57600080fd5b60018160ff1610151515611a2157600080fd5b80600460006101000a81548160ff021916908360ff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a7957600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611acd5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611ad857600080fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611b5c57600080fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060ff16600460009054906101000a900460ff1660ff16141515611cf357611cf2816119c0565b5b5050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f010000000000000000000000000000000000000000000000000000000000000002308c8c8c8c8c8c8c8c8c604051602001808d7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189815260200188805190602001908083835b602083101515611e9f5780518252602082019150602081019050602083039250611e7a565b6001836020036101000a038019825116818451168082178552505050505050905001876002811115611ecd57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018281526020019c505050505050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611fa25780518252602082019150602081019050602083039250611f7d565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509998505050505050505050565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561201d57600080fd5b5a915061202d878787875a6128dd565b151561203857600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156120c35780820151818401526020810190506120a8565b50505050905090810190601f1680156120f05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561213857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156121d157600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561236b57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156123bf5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156123ca57600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561244e57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156124e757600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600460009054906101000a900460ff16905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000809250600090505b600460009054906101000a900460ff1660ff168110156128d457600187878381518110151561274e57fe5b90602001906020020151878481518110151561276657fe5b90602001906020020151878581518110151561277e57fe5b90602001906020020151604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af11580156127f9573d6000803e3d6000fd5b5050506020604051035191506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561288a57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161115156128c457600080fd5b8192508080600101915050612723565b50505050505050565b600080600060028111156128ed57fe5b8460028111156128f957fe5b14156129125761290b87878786612daa565b91506129d0565b6001600281111561291f57fe5b84600281111561292b57fe5b14156129435761293c878685612dc3565b91506129cf565b61294c85612dda565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600080600080600460009054906101000a900460ff1660ff161415156129ff57600080fd5b84518460ff1611151515612a1257600080fd5b60018460ff1610151515612a2557600080fd5b60019250600091505b8451821015612bc2578482815181101515612a4557fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015612aa55750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612ab057600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612b3457600080fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050612a2e565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550845160038190555083600460006101000a81548160ff021916908360ff1602179055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612cf057600080fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515612da657612d9a82825a612dc3565b1515612da557600080fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820347ad2b5b6fe6e72a8ecd2f9f47f2abf73193416650afadcef171dd55cb8297c0029", + "deployedBytecode": "0x608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806314148af21461012a5780632f54bf6e146102d1578063468721a71461032c578063610b5925146103e45780637de7edef1461042757806385e332cd1461046a57806386040aa9146104c15780638cff635514610531578063a04222e114610588578063a0e67e2b14610661578063a3f4df7e146106cd578063ad8a04501461075d578063affed0e0146107a8578063b2494df3146107d3578063b7f3358d1461083f578063b91a667f1461086f578063ba08ea24146108bf578063c4ca3a9c146109c3578063e009cfde14610a77578063e318b52b14610ada578063e75235b814610b5d578063ffa1ad7414610b8e575b005b34801561013657600080fd5b506102cf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610c1e565b005b3480156102dd57600080fd5b50610312600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e41565b604051808215151515815260200191505060405180910390f35b34801561033857600080fd5b506103ca600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610ec3565b604051808215151515815260200191505060405180910390f35b3480156103f057600080fd5b50610425600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f60565b005b34801561043357600080fd5b50610468600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111dd565b005b34801561047657600080fd5b5061047f611280565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104cd57600080fd5b5061052f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611285565b005b34801561053d57600080fd5b5061054661150b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561059457600080fd5b5061065f60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611510565b005b34801561066d57600080fd5b5061067661152a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106b957808201518184015260208101905061069e565b505050509050019250505060405180910390f35b3480156106d957600080fd5b506106e26116c5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610722578082015181840152602081019050610707565b50505050905090810190601f16801561074f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561076957600080fd5b5061079260048036038101908080359060200190929190803590602001909291905050506116fe565b6040518082815260200191505060405180910390f35b3480156107b457600080fd5b506107bd611713565b6040518082815260200191505060405180910390f35b3480156107df57600080fd5b506107e8611719565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561082b578082015181840152602081019050610810565b505050509050019250505060405180910390f35b34801561084b57600080fd5b5061086d600480360381019080803560ff1690602001909291905050506119c0565b005b34801561087b57600080fd5b506108bd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611a3f565b005b3480156108cb57600080fd5b506109a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cf7565b60405180826000191660001916815260200191505060405180910390f35b3480156109cf57600080fd5b50610a61600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611fde565b6040518082815260200191505060405180910390f35b348015610a8357600080fd5b50610ad8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120fe565b005b348015610ae657600080fd5b50610b5b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612331565b005b348015610b6957600080fd5b50610b726126c6565b604051808260ff1660ff16815260200191505060405180910390f35b348015610b9a57600080fd5b50610ba36126dd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610be3578082015181840152602081019050610bc8565b50505050905090810190601f168015610c105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008060005a9250610c44610c3c8f8f8f8f8f8f8f8f600554611cf7565b878787612716565b60056000815480929190600101919050555089612af85a0310151515610c6957600080fd5b610c768e8e8e8e8e6128dd565b1515610ca9577facfdb444727b3b8994850a379f4bfc8a5ca665a55604339199daafa16f687b1a60405160405180910390a15b6000881115610e3157610cbe5a84038a6116fe565b91508782029050600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610d46573273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610d40573d6000803e3d6000fd5b50610e30565b8673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb32836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610de957600080fd5b505af1158015610dfd573d6000803e3d6000fd5b505050506040513d6020811015610e1357600080fd5b81019080805190602001909291905050501515610e2f57600080fd5b5b5b5050505050505050505050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610f4957600080fd5b610f56858585855a6128dd565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f9a57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610fee5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610ff957600080fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561107d57600080fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561121757600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561123d57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156112bf57600080fd5b8060ff16600160035403101515156112d657600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561136f57600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060ff16600460009054906101000a900460ff1660ff1614151561150657611505816119c0565b5b505050565b600181565b61151a84846129da565b6115248282612c6b565b50505050565b6060806000806003546040519080825280602002602001820160405280156115615781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156116bc5780838381518110151561161157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506115cc565b82935050505090565b6040805190810160405280601c81526020017f476e6f736973205361666520506572736f6e616c2045646974696f6e0000000081525081565b6000615208612af88385010101905092915050565b60055481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561182d57600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611788565b8260405190808252806020026020018201604052801561185c5781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156119b75781818481518110151561190c57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506118c7565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119fa57600080fd5b6003548160ff1611151515611a0e57600080fd5b60018160ff1610151515611a2157600080fd5b80600460006101000a81548160ff021916908360ff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a7957600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611acd5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611ad857600080fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611b5c57600080fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060ff16600460009054906101000a900460ff1660ff16141515611cf357611cf2816119c0565b5b5050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f010000000000000000000000000000000000000000000000000000000000000002308c8c8c8c8c8c8c8c8c604051602001808d7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189815260200188805190602001908083835b602083101515611e9f5780518252602082019150602081019050602083039250611e7a565b6001836020036101000a038019825116818451168082178552505050505050905001876002811115611ecd57fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018281526020019c505050505050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515611fa25780518252602082019150602081019050602083039250611f7d565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509998505050505050505050565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561201d57600080fd5b5a915061202d878787875a6128dd565b151561203857600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156120c35780820151818401526020810190506120a8565b50505050905090810190601f1680156120f05780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561213857600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156121d157600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561236b57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156123bf5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156123ca57600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561244e57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156124e757600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600460009054906101000a900460ff16905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000809250600090505b600460009054906101000a900460ff1660ff168110156128d457600187878381518110151561274e57fe5b90602001906020020151878481518110151561276657fe5b90602001906020020151878581518110151561277e57fe5b90602001906020020151604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af11580156127f9573d6000803e3d6000fd5b5050506020604051035191506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561288a57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161115156128c457600080fd5b8192508080600101915050612723565b50505050505050565b600080600060028111156128ed57fe5b8460028111156128f957fe5b14156129125761290b87878786612daa565b91506129d0565b6001600281111561291f57fe5b84600281111561292b57fe5b14156129435761293c878685612dc3565b91506129cf565b61294c85612dda565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600080600080600460009054906101000a900460ff1660ff161415156129ff57600080fd5b84518460ff1611151515612a1257600080fd5b60018460ff1610151515612a2557600080fd5b60019250600091505b8451821015612bc2578482815181101515612a4557fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015612aa55750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612ab057600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612b3457600080fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050612a2e565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550845160038190555083600460006101000a81548160ff021916908360ff1602179055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612cf057600080fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515612da657612d9a82825a612dc3565b1515612da557600080fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820347ad2b5b6fe6e72a8ecd2f9f47f2abf73193416650afadcef171dd55cb8297c0029", + "sourceMap": "449:6193:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;449:6193:3;;;;;;;", + "deployedSourceMap": "449:6193:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1660:1367;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1660:1367:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4841:129:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4841:129:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2522:377:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2522:377:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1235:391;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1235:391:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:208:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:55:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:55:8;;;;;;;;;;;;;;;;;;;;;;;;;;;2776:573:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2776:573:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:9;;;;;;;;;;;;;;;;;;;;;;;;;;;693:301:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;693:301:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5052:458:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5052:458:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:9;;;;;;;;;;;;;;;;;517:60:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;517:60:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;517:60:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3459:209;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3459:209:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;779:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;779:20:3;;;;;;;;;;;;;;;;;;;;;;;4423:738:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4423:738:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:8;;;;;;;;;;;;;;;;;4398:318:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4398:318:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1906:528;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1906:528:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6140:500:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6140:500:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4586:407;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4586:407:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1887:299:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1887:299:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3683:526:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3683:526:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4722:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4722:113:9;;;;;;;;;;;;;;;;;;;;;;;;;;;583:40:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;583:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;583:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1660:1367;1994:16;2565;2642:14;2013:9;1994:28;;2032:113;2042:93;2061:2;2065:5;2072:4;2078:9;2089;2100:7;2109:8;2119;2129:5;;2042:18;:93::i;:::-;2137:1;2140;2143;2032:9;:113::i;:::-;2206:5;;:7;;;;;;;;;;;;;2264:9;737:5;2231:9;:29;:42;;2223:51;;;;;;;;2289:46;2297:2;2301:5;2308:4;2314:9;2325;2289:7;:46::i;:::-;2288:47;2284:100;;;2356:17;;;;;;;;;;2284:100;2548:1;2537:8;:12;2533:486;;;2584:44;2609:9;2598:8;:20;2620:7;2584:13;:44::i;:::-;2565:63;;2670:8;2659;:19;2642:36;;2716:1;2696:22;;:8;:22;;;2692:317;;;2805:9;:18;;:26;2824:6;2805:26;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2805:26:3;2692:317;;;2956:8;2945:29;;;2975:9;2986:6;2945:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2945:48:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2945:48:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2945:48:3;;;;;;;;;;;;;;;;2937:57;;;;;;;;2692:317;2533:486;1660:1367;;;;;;;;;;;;;;:::o;4841:129:9:-;4918:4;4962:1;4945:6;:13;4952:5;4945:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;4938:25;;4841:129;;;:::o;2522:377:8:-;2654:12;2762:1;2739:7;:19;2747:10;2739:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2731:33;;;;;;;;2846:46;2854:2;2858:5;2865:4;2871:9;2882;2846:7;:46::i;:::-;2836:56;;2522:377;;;;;;:::o;1235:391::-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;1401:1:8;1390:6;1382:20;;;;:59;;;;;550:3;1406:35;;1414:6;1406:35;;;;1382:59;1374:68;;;;;;;;1520:1;1501:7;:15;1509:6;1501:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1493:29;;;;;;;;1550:7;:25;550:3;1550:25;;;;;;;;;;;;;;;;;;;;;;;;;1532:7;:15;1540:6;1532:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1613:6;1585:7;:25;550:3;1585:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1235:391;:::o;626:208:5:-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;791:1:5;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o;499:55:8:-;550:3;499:55;:::o;2776:573:9:-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;3000:10:9;2982:28;;2995:1;2982:10;;:14;:28;;2974:37;;;;;;;;3112:5;3091:26;;:6;:17;3098:9;3091:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3083:35;;;;;;;;3148:6;:13;3155:5;3148:13;;;;;;;;;;;;;;;;;;;;;;;;;3128:6;:17;3135:9;3128:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3187:1;3171:6;:13;3178:5;3171:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3198:10;;:12;;;;;;;;;;;;;;3291:10;3278:23;;:9;;;;;;;;;;;:23;;;;3274:68;;;3315:27;3331:10;3315:15;:27::i;:::-;3274:68;2776:573;;;:::o;287:54::-;337:3;287:54;:::o;693:301:2:-;798:32;810:7;819:10;798:11;:32::i;:::-;965:22;978:2;982:4;965:12;:22::i;:::-;693:301;;;;:::o;5052:458:9:-;5118:9;5143:22;5237:13;5264:20;5182:10;;5168:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5168:25:9;;;;5143:50;;5253:1;5237:17;;5287:6;:23;337:3;5287:23;;;;;;;;;;;;;;;;;;;;;;;;;5264:46;;5320:162;337:3;5326:31;;:12;:31;;;;5320:162;;;5388:12;5373:5;5379;5373:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;5429:6;:20;5436:12;5429:20;;;;;;;;;;;;;;;;;;;;;;;;;5414:35;;5463:8;;;;;;;5320:162;;;5498:5;5491:12;;5052:458;;;;:::o;517:60:3:-;;;;;;;;;;;;;;;;;;;;:::o;3459:209::-;3568:7;680:5;737;3614:7;3599:12;:22;:42;:62;3592:69;;3459:209;;;;:::o;779:20::-;;;;:::o;4423:738:8:-;4490:9;4549:19;4582:21;4782:22;4571:1;4549:23;;4606:7;:25;550:3;4606:25;;;;;;;;;;;;;;;;;;;;;;;;;4582:49;;4641:132;550:3;4647:33;;:13;:33;;;;4641:132;;;4712:7;:22;4720:13;4712:22;;;;;;;;;;;;;;;;;;;;;;;;;4696:38;;4748:14;;;;;;;4641:132;;;4821:11;4807:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4807:26:8;;;;4782:51;;4891:1;4877:15;;4918:7;:25;550:3;4918:25;;;;;;;;;;;;;;;;;;;;;;;;;4902:41;;4953:180;550:3;4959:33;;:13;:33;;;;4953:180;;;5029:13;5008:5;5014:11;5008:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5072:7;:22;5080:13;5072:22;;;;;;;;;;;;;;;;;;;;;;;;;5056:38;;5108:14;;;;;;;4953:180;;;5149:5;5142:12;;4423:738;;;;:::o;4398:318:9:-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;4580:10:9;;4566;:24;;;;4558:33;;;;;;;;4675:1;4661:10;:15;;;;4653:24;;;;;;;;4699:10;4687:9;;:22;;;;;;;;;;;;;;;;;;4398:318;:::o;1906:528::-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;2076:1:9;2067:5;:10;;;;:38;;;;;337:3;2081:24;;:5;:24;;;;2067:38;2059:47;;;;;;;;2181:1;2164:6;:13;2171:5;2164:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2156:27;;;;;;;;2209:6;:23;337:3;2209:23;;;;;;;;;;;;;;;;;;;;;;;;;2193:6;:13;2200:5;2193:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2268:5;2242:6;:23;337:3;2242:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2283:10;;:12;;;;;;;;;;;;;2376:10;2363:23;;:9;;;;;;;;;;;:23;;;;2359:68;;;2400:27;2416:10;2400:15;:27::i;:::-;2359:68;1906:528;;:::o;6140:500:3:-;6451:7;6526:4;6521:10;;6538:1;6533:7;;6542:4;6548:2;6552:5;6559:4;6565:9;6576;6587:7;6596:8;6606;6616:6;6504:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6504:119:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6504:119:3;;;6481:152;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6481:152:3;;;;;;;;;;;;;;;;6474:159;;6140:500;;;;;;;;;;;:::o;4586:407::-;4725:7;4748:16;4851:19;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;4767:9:3;4748:28;;4794:46;4802:2;4806:5;4813:4;4819:9;4830;4794:7;:46::i;:::-;4786:55;;;;;;;;4884:9;4873:8;:20;4851:42;;4972:11;4955:29;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4955:29:3;;;4941:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4941:45:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1887:299:8;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;2095:6:8;2064:38;;:7;:19;2072:10;2064:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2056:47;;;;;;;;2135:7;:15;2143:6;2135:15;;;;;;;;;;;;;;;;;;;;;;;;;2113:7;:19;2121:10;2113:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2178:1;2160:7;:15;2168:6;2160:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1887:299;;:::o;3683:526:9:-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;3866:1:9;3854:8;:13;;;;:44;;;;;337:3;3871:27;;:8;:27;;;;3854:44;3846:53;;;;;;;;3977:1;3957:6;:16;3964:8;3957:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;3949:30;;;;;;;;4080:8;4059:29;;:6;:17;4066:9;4059:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4051:38;;;;;;;;4118:6;:16;4125:8;4118:16;;;;;;;;;;;;;;;;;;;;;;;;;4099:6;:16;4106:8;4099:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4164:8;4144:6;:17;4151:9;4144:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4201:1;4182:6;:16;4189:8;4182:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;3683:526;;;:::o;4722:113::-;4791:5;4819:9;;;;;;;;;;;4812:16;;4722:113;:::o;583:40:3:-;;;;;;;;;;;;;;;;;;;;:::o;4999:541::-;5165:17;5205:20;5235:9;5193:1;5165:30;;5305:1;5301:5;;5296:238;5312:9;;;;;;;;;;;5308:13;;:1;:13;5296:238;;;5357:33;5367:4;5373:1;5375;5373:4;;;;;;;;;;;;;;;;;;5379:1;5381;5379:4;;;;;;;;;;;;;;;;;;5385:1;5387;5385:4;;;;;;;;;;;;;;;;;;5357:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5357:33:3;;;;;;;;5342:48;;5436:1;5412:6;:20;5419:12;5412:20;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;5404:34;;;;;;;;5475:9;5460:24;;:12;:24;;;5452:33;;;;;;;;5511:12;5499:24;;5323:3;;;;;;;5296:238;;;4999:541;;;;;;;:::o;2905:548:8:-;3036:12;3307:19;3081;3068:32;;;;;;;;:9;:32;;;;;;;;;3064:383;;;3124:35;3136:2;3140:5;3147:4;3153:5;3124:11;:35::i;:::-;3114:45;;3064:383;;;3191:27;3178:40;;;;;;;;:9;:40;;;;;;;;;3174:273;;;3242:36;3262:2;3266:4;3272:5;3242:19;:36::i;:::-;3232:46;;3174:273;;;3329:19;3343:4;3329:13;:19::i;:::-;3307:41;;3387:1;3372:11;:16;;;;3362:26;;3407:29;3424:11;3407:29;;;;;;;;;;;;;;;;;;;;;;3174:273;3064:383;2905:548;;;;;;;;:::o;641:1025:9:-;1132:20;1185:9;1284:13;875:1;862:9;;;;;;;;;;;:14;;;854:23;;;;;;;;984:7;:14;970:10;:28;;;;962:37;;;;;;;;1083:1;1069:10;:15;;;;1061:24;;;;;;;;337:3;1132:38;;1197:1;1185:13;;1180:363;1204:7;:14;1200:1;:18;1180:363;;;1300:7;1308:1;1300:10;;;;;;;;;;;;;;;;;;1284:26;;1341:1;1332:5;:10;;;;:38;;;;;337:3;1346:24;;:5;:24;;;;1332:38;1324:47;;;;;;;;1454:1;1437:6;:13;1444:5;1437:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1429:27;;;;;;;;1493:5;1470:6;:20;1477:12;1470:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1527:5;1512:20;;1220:3;;;;;;;1180:363;;;337:3;1552:6;:20;1559:12;1552:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1613:7;:14;1600:10;:27;;;;1649:10;1637:9;;:22;;;;;;;;;;;;;;;;;;641:1025;;;;;:::o;735:333:8:-;849:1;820:7;:25;550:3;820:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;812:39;;;;;;;;550:3;861:7;:25;550:3;861:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;925:1;919:2;:7;;;;915:146;;;1020:40;1040:2;1044:4;1050:9;1020:19;:40::i;:::-;1012:49;;;;;;;;915:146;735:333;;:::o;3459:309::-;3568:12;3750:1;3747;3740:4;3734:11;3727:4;3721;3717:15;3710:5;3706:2;3699:5;3694:58;3683:69;;3669:93;;;;;;:::o;3774:303::-;3876:12;4059:1;4056;4049:4;4043:11;4036:4;4030;4026:15;4022:2;4015:5;4002:59;3991:70;;3977:94;;;;;:::o;4083:261::-;4152:19;4322:4;4316:11;4309:4;4303;4299:15;4296:1;4289:39;4274:54;;4260:78;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./interfaces/ERC20Token.sol\";\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 - \n/// @author Richard Meissner - \n/// @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment\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 gasToken Token address (or 0 if ETH) that is used for the payment.\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 execAndPayTransaction(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 safeTxGas,\n uint256 dataGas,\n uint256 gasPrice,\n address gasToken,\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, gasToken, 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 \n // We transfer the calculated tx costs to the tx.origin to avoid sending it to intermediate contracts that have made calls\n if (gasPrice > 0) {\n uint256 gasCosts = totalGasCosts(startGas - gasleft(), dataGas);\n uint256 amount = gasCosts * gasPrice;\n if (gasToken == address(0)) {\n // solium-disable-next-line security/no-tx-origin\n tx.origin.transfer(amount);\n } else {\n // solium-disable-next-line security/no-tx-origin\n require(ERC20Token(gasToken).transfer(tx.origin, amount));\n }\n } \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 is only meant for estimation purpose, therfore two different protection mechanism against execution in a transaction have been made:\n /// 1.) The method can only be called from the safe itself\n /// 2.) The response is returned with a revert\n /// 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 `execAndPayTransaction`\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 require(execute(to, value, data, operation, gasleft()));\n uint256 requiredGas = startGas - gasleft();\n // Convert response to string\n revert(string(abi.encodePacked(requiredGas)));\n }\n\n function checkHash(bytes32 hash, uint8[] v, bytes32[] r, bytes32[] s)\n internal\n view\n {\n // There cannot be an owner with address 0.\n address lastOwner = address(0);\n address currentOwner;\n uint256 i;\n // Validate threshold is reached.\n for (i = 0; i < threshold; i++) {\n currentOwner = ecrecover(hash, v[i], r[i], s[i]);\n require(owners[currentOwner] != 0);\n require(currentOwner > lastOwner);\n lastOwner = currentOwner;\n }\n }\n\n /// @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 gasToken Token address (or 0 if ETH) that is used for the payment.\n /// @param _nonce Transaction nonce.\n /// @return Transaction hash.\n function getTransactionHash(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 safeTxGas, \n uint256 dataGas, \n uint256 gasPrice, \n address gasToken,\n uint256 _nonce\n )\n public\n view\n returns (bytes32)\n {\n return keccak256(\n abi.encodePacked(byte(0x19), byte(0), this, to, value, data, operation, safeTxGas, dataGas, gasPrice, gasToken, _nonce)\n );\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafePersonalEdition.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafePersonalEdition.sol", "exportedSymbols": { "GnosisSafePersonalEdition": [ - 324 + 397 ] }, - "id": 325, + "id": 398, "nodeType": "SourceUnit", "nodes": [ { - "id": 41, + "id": 65, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:2" + "src": "0:23:3" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ERC20Token.sol", + "file": "./interfaces/ERC20Token.sol", + "id": 66, + "nodeType": "ImportDirective", + "scope": 398, + "sourceUnit": 1686, + "src": "24:37:3", + "symbolAliases": [], + "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "file": "./GnosisSafe.sol", - "id": 42, + "id": 67, "nodeType": "ImportDirective", - "scope": 325, - "sourceUnit": 40, - "src": "24:26:2", + "scope": 398, + "sourceUnit": 64, + "src": "62:26:3", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 43, + "id": 68, "nodeType": "ImportDirective", - "scope": 325, - "sourceUnit": 581, - "src": "51:26:2", + "scope": 398, + "sourceUnit": 653, + "src": "89:26:3", "symbolAliases": [], "unitAlias": "" }, @@ -540,68 +559,68 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 44, + "id": 69, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 580, - "src": "352:10:2", + "referencedDeclaration": 652, + "src": "487:10:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$580", + "typeIdentifier": "t_contract$_MasterCopy_$652", "typeString": "contract MasterCopy" } }, - "id": 45, + "id": 70, "nodeType": "InheritanceSpecifier", - "src": "352:10:2" + "src": "487:10:3" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 46, + "id": 71, "name": "GnosisSafe", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 39, - "src": "364:10:2", + "referencedDeclaration": 63, + "src": "499:10:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$39", + "typeIdentifier": "t_contract$_GnosisSafe_$63", "typeString": "contract GnosisSafe" } }, - "id": 47, + "id": 72, "nodeType": "InheritanceSpecifier", - "src": "364:10:2" + "src": "499:10:3" } ], "contractDependencies": [ - 39, - 580, - 971, - 1343, - 1359 + 63, + 652, + 1100, + 1472, + 1619 ], "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 - \n @author Richard Meissner - ", + "documentation": "@title Gnosis Safe Personal Edition - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n @author Stefan George - \n @author Richard Meissner - \n @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment", "fullyImplemented": true, - "id": 324, + "id": 397, "linearizedBaseContracts": [ - 324, - 39, - 1343, - 971, - 580, - 1359 + 397, + 63, + 1472, + 1100, + 652, + 1619 ], "name": "GnosisSafePersonalEdition", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 50, + "id": 75, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 324, - "src": "382:60:2", + "scope": 397, + "src": "517:60:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -609,10 +628,10 @@ "typeString": "string" }, "typeName": { - "id": 48, + "id": 73, "name": "string", "nodeType": "ElementaryTypeName", - "src": "382:6:2", + "src": "517:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -621,14 +640,14 @@ "value": { "argumentTypes": null, "hexValue": "476e6f736973205361666520506572736f6e616c2045646974696f6e", - "id": 49, + "id": 74, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "412:30:2", + "src": "547:30:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b657d2895d137bf089ce1df776b732639b1ebc2a3aec3bd837e225e9e0965154", @@ -640,11 +659,11 @@ }, { "constant": true, - "id": 53, + "id": 78, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 324, - "src": "448:40:2", + "scope": 397, + "src": "583:40:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -652,10 +671,10 @@ "typeString": "string" }, "typeName": { - "id": 51, + "id": 76, "name": "string", "nodeType": "ElementaryTypeName", - "src": "448:6:2", + "src": "583:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -664,14 +683,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 52, + "id": 77, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "481:7:2", + "src": "616:7:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -683,11 +702,11 @@ }, { "constant": true, - "id": 56, + "id": 81, "name": "BASE_TX_GAS_COSTS", "nodeType": "VariableDeclaration", - "scope": 324, - "src": "499:51:2", + "scope": 397, + "src": "634:51:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -695,10 +714,10 @@ "typeString": "uint256" }, "typeName": { - "id": 54, + "id": 79, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "499:7:2", + "src": "634:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -707,14 +726,14 @@ "value": { "argumentTypes": null, "hexValue": "3231303030", - "id": 55, + "id": 80, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "545:5:2", + "src": "680:5:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_21000_by_1", @@ -726,11 +745,11 @@ }, { "constant": true, - "id": 59, + "id": 84, "name": "PAYMENT_GAS_COSTS", "nodeType": "VariableDeclaration", - "scope": 324, - "src": "556:51:2", + "scope": 397, + "src": "691:51:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -738,10 +757,10 @@ "typeString": "uint256" }, "typeName": { - "id": 57, + "id": 82, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "556:7:2", + "src": "691:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -750,14 +769,14 @@ "value": { "argumentTypes": null, "hexValue": "3131303030", - "id": 58, + "id": 83, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "602:5:2", + "src": "737:5:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_11000_by_1", @@ -770,24 +789,24 @@ { "anonymous": false, "documentation": null, - "id": 61, + "id": 86, "name": "ExecutionFailed", "nodeType": "EventDefinition", "parameters": { - "id": 60, + "id": 85, "nodeType": "ParameterList", "parameters": [], - "src": "635:2:2" + "src": "770:2:3" }, - "src": "614:24:2" + "src": "749:24:3" }, { "constant": false, - "id": 63, + "id": 88, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 324, - "src": "644:20:2", + "scope": 397, + "src": "779:20:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -795,10 +814,10 @@ "typeString": "uint256" }, "typeName": { - "id": 62, + "id": 87, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "644:7:2", + "src": "779:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -809,22 +828,22 @@ }, { "body": { - "id": 155, + "id": 211, "nodeType": "Block", - "src": "1738:708:2", + "src": "1984:1043:3", "statements": [ { "assignments": [ - 90 + 117 ], "declarations": [ { "constant": false, - "id": 90, + "id": 117, "name": "startGas", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1748:16:2", + "scope": 212, + "src": "1994:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -832,10 +851,10 @@ "typeString": "uint256" }, "typeName": { - "id": 89, + "id": 116, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1748:7:2", + "src": "1994:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -845,24 +864,24 @@ "visibility": "internal" } ], - "id": 93, + "id": 120, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 91, + "id": 118, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "1767:7:2", + "referencedDeclaration": 2591, + "src": "2013:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 92, + "id": 119, "isConstant": false, "isLValue": false, "isPure": false, @@ -870,14 +889,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1767:9:2", + "src": "2013:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1748:28:2" + "src": "1994:28:3" }, { "expression": { @@ -888,12 +907,12 @@ "arguments": [ { "argumentTypes": null, - "id": 96, + "id": 123, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "1815:2:2", + "referencedDeclaration": 90, + "src": "2061:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -901,12 +920,12 @@ }, { "argumentTypes": null, - "id": 97, + "id": 124, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "1819:5:2", + "referencedDeclaration": 92, + "src": "2065:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -914,12 +933,12 @@ }, { "argumentTypes": null, - "id": 98, + "id": 125, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "1826:4:2", + "referencedDeclaration": 94, + "src": "2072:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -927,25 +946,25 @@ }, { "argumentTypes": null, - "id": 99, + "id": 126, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "1832:9:2", + "referencedDeclaration": 96, + "src": "2078:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 100, + "id": 127, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "1843:9:2", + "referencedDeclaration": 98, + "src": "2089:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -953,12 +972,12 @@ }, { "argumentTypes": null, - "id": 101, + "id": 128, "name": "dataGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "1854:7:2", + "referencedDeclaration": 100, + "src": "2100:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -966,12 +985,12 @@ }, { "argumentTypes": null, - "id": 102, + "id": 129, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "1863:8:2", + "referencedDeclaration": 102, + "src": "2109:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -979,12 +998,25 @@ }, { "argumentTypes": null, - "id": 103, + "id": 130, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 104, + "src": "2119:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 131, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "1873:5:2", + "referencedDeclaration": 88, + "src": "2129:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1006,7 +1038,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -1021,23 +1053,27 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 95, + "id": 122, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 323, - "src": "1796:18:2", + "referencedDeclaration": 396, + "src": "2042:18:3", "typeDescriptions": { - "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_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,uint256) view returns (bytes32)" + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,uint256) view returns (bytes32)" } }, - "id": 104, + "id": 132, "isConstant": false, "isLValue": false, "isPure": false, @@ -1045,7 +1081,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1796:83:2", + "src": "2042:93:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1053,12 +1089,12 @@ }, { "argumentTypes": null, - "id": 105, + "id": 133, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "1881:1:2", + "referencedDeclaration": 107, + "src": "2137:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" @@ -1066,12 +1102,12 @@ }, { "argumentTypes": null, - "id": 106, + "id": 134, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 83, - "src": "1884:1:2", + "referencedDeclaration": 110, + "src": "2140:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -1079,12 +1115,12 @@ }, { "argumentTypes": null, - "id": 107, + "id": 135, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "1887:1:2", + "referencedDeclaration": 113, + "src": "2143:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -1110,18 +1146,18 @@ "typeString": "bytes32[] memory" } ], - "id": 94, + "id": 121, "name": "checkHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "1786:9:2", + "referencedDeclaration": 350, + "src": "2032:9:3", "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" } }, - "id": 108, + "id": 136, "isConstant": false, "isLValue": false, "isPure": false, @@ -1129,20 +1165,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1786:103:2", + "src": "2032:113:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 109, + "id": 137, "nodeType": "ExpressionStatement", - "src": "1786:103:2" + "src": "2032:113:3" }, { "expression": { "argumentTypes": null, - "id": 111, + "id": 139, "isConstant": false, "isLValue": false, "isPure": false, @@ -1150,15 +1186,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1950:7:2", + "src": "2206:7:3", "subExpression": { "argumentTypes": null, - "id": 110, + "id": 138, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "1950:5:2", + "referencedDeclaration": 88, + "src": "2206:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1169,9 +1205,9 @@ "typeString": "uint256" } }, - "id": 112, + "id": 140, "nodeType": "ExpressionStatement", - "src": "1950:7:2" + "src": "2206:7:3" }, { "expression": { @@ -1183,7 +1219,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 119, + "id": 147, "isConstant": false, "isLValue": false, "isPure": false, @@ -1194,7 +1230,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 117, + "id": 145, "isConstant": false, "isLValue": false, "isPure": false, @@ -1204,18 +1240,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 114, + "id": 142, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "1975:7:2", + "referencedDeclaration": 2591, + "src": "2231:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 115, + "id": 143, "isConstant": false, "isLValue": false, "isPure": false, @@ -1223,7 +1259,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1975:9:2", + "src": "2231:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1233,18 +1269,18 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 116, + "id": 144, "name": "PAYMENT_GAS_COSTS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59, - "src": "1987:17:2", + "referencedDeclaration": 84, + "src": "2243:17:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1975:29:2", + "src": "2231:29:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1254,18 +1290,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 118, + "id": 146, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "2008:9:2", + "referencedDeclaration": 98, + "src": "2264:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1975:42:2", + "src": "2231:42:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1279,21 +1315,21 @@ "typeString": "bool" } ], - "id": 113, + "id": 141, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1967:7:2", + "referencedDeclaration": 2601, + "src": "2223:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 120, + "id": 148, "isConstant": false, "isLValue": false, "isPure": false, @@ -1301,20 +1337,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1967:51:2", + "src": "2223:51:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 121, + "id": 149, "nodeType": "ExpressionStatement", - "src": "1967:51:2" + "src": "2223:51:3" }, { "condition": { "argumentTypes": null, - "id": 129, + "id": 157, "isConstant": false, "isLValue": false, "isPure": false, @@ -1322,18 +1358,18 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2032:47:2", + "src": "2288:47:3", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 123, + "id": 151, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "2041:2:2", + "referencedDeclaration": 90, + "src": "2297:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1341,12 +1377,12 @@ }, { "argumentTypes": null, - "id": 124, + "id": 152, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "2045:5:2", + "referencedDeclaration": 92, + "src": "2301:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1354,12 +1390,12 @@ }, { "argumentTypes": null, - "id": 125, + "id": 153, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "2052:4:2", + "referencedDeclaration": 94, + "src": "2308:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1367,25 +1403,25 @@ }, { "argumentTypes": null, - "id": 126, + "id": 154, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "2058:9:2", + "referencedDeclaration": 96, + "src": "2314:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 127, + "id": 155, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "2069:9:2", + "referencedDeclaration": 98, + "src": "2325:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1407,7 +1443,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -1415,18 +1451,18 @@ "typeString": "uint256" } ], - "id": 122, + "id": 150, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 860, - "src": "2033:7:2", + "referencedDeclaration": 989, + "src": "2289:7:3", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" } }, - "id": 128, + "id": 156, "isConstant": false, "isLValue": false, "isPure": false, @@ -1434,7 +1470,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2033:46:2", + "src": "2289:46:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1446,13 +1482,13 @@ } }, "falseBody": null, - "id": 134, + "id": 162, "nodeType": "IfStatement", - "src": "2028:100:2", + "src": "2284:100:3", "trueBody": { - "id": 133, + "id": 161, "nodeType": "Block", - "src": "2081:47:2", + "src": "2337:47:3", "statements": [ { "eventCall": { @@ -1460,18 +1496,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 130, + "id": 158, "name": "ExecutionFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "2100:15:2", + "referencedDeclaration": 86, + "src": "2356:15:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 131, + "id": 159, "isConstant": false, "isLValue": false, "isPure": false, @@ -1479,98 +1515,214 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2100:17:2", + "src": "2356:17:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 132, + "id": 160, "nodeType": "EmitStatement", - "src": "2095:22:2" + "src": "2351:22:3" } ] } }, { - "assignments": [ - 136 - ], - "declarations": [ - { - "constant": false, - "id": 136, - "name": "gasCosts", - "nodeType": "VariableDeclaration", - "scope": 156, - "src": "2137:16:2", - "stateVariable": false, - "storageLocation": "default", + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 163, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 102, + "src": "2537:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2548:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "typeName": { - "id": 135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2137:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "value": "0" + }, + "src": "2537:12:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "id": 144, - "initialValue": { - "argumentTypes": null, - "arguments": [ + }, + "falseBody": null, + "id": 210, + "nodeType": "IfStatement", + "src": "2533:486:3", + "trueBody": { + "id": 209, + "nodeType": "Block", + "src": "2551:468:3", + "statements": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 138, - "name": "startGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "2170:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "assignments": [ + 167 + ], + "declarations": [ + { + "constant": false, + "id": 167, + "name": "gasCosts", + "nodeType": "VariableDeclaration", + "scope": 212, + "src": "2565:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 166, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2565:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { + ], + "id": 175, + "initialValue": { "argumentTypes": null, - "arguments": [], + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 169, + "name": "startGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "2598:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 170, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2591, + "src": "2609:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2609:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2598:20:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 173, + "name": "dataGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "2620:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], "expression": { - "argumentTypes": [], - "id": 139, - "name": "gasleft", + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 168, + "name": "totalGasCosts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "2181:7:2", + "referencedDeclaration": 230, + "src": "2584:13:3", "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 140, + "id": 174, "isConstant": false, "isLValue": false, "isPure": false, @@ -1578,210 +1730,491 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2181:9:2", + "src": "2584:44:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2170:20:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "nodeType": "VariableDeclarationStatement", + "src": "2565:63:3" }, { - "argumentTypes": null, - "id": 142, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "2192:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 137, - "name": "totalGasCosts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 174, - "src": "2156:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2156:44:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2137:63:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "assignments": [ + 177 + ], + "declarations": [ + { + "constant": false, + "id": 177, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 212, + "src": "2642:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2642:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 181, + "initialValue": { "argumentTypes": null, - "id": 150, - "name": "gasCosts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 136, - "src": "2419:8:2", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 178, + "name": "gasCosts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2659:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 179, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 102, + "src": "2670:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2659:19:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 151, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2430:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2419:19:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 145, - "name": "tx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2408, - "src": "2400:2:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_transaction", - "typeString": "tx" - } - }, - "id": 148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "origin", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2400:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "nodeType": "VariableDeclarationStatement", + "src": "2642:36:3" }, - "id": 149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2400:18:2", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 182, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 104, + "src": "2696:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2716:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2708:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2708:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2696:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 207, + "nodeType": "Block", + "src": "2852:157:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 201, + "name": "tx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2610, + "src": "2975:2:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_transaction", + "typeString": "tx" + } + }, + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "origin", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2975:9:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 203, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "2986:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 198, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 104, + "src": "2956:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 197, + "name": "ERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "2945:10:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Token_$1685_$", + "typeString": "type(contract ERC20Token)" + } + }, + "id": 199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2945:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Token_$1685", + "typeString": "contract ERC20Token" + } + }, + "id": 200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1639, + "src": "2945:29:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2945:48:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 196, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2601, + 2602 + ], + "referencedDeclaration": 2601, + "src": "2937:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2937:57:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 206, + "nodeType": "ExpressionStatement", + "src": "2937:57:3" + } + ] + }, + "id": 208, + "nodeType": "IfStatement", + "src": "2692:317:3", + "trueBody": { + "id": 195, + "nodeType": "Block", + "src": "2720:126:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 192, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "2824:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 187, + "name": "tx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2610, + "src": "2805:2:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_transaction", + "typeString": "tx" + } + }, + "id": 190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "origin", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2805:9:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2805:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2805:26:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 194, + "nodeType": "ExpressionStatement", + "src": "2805:26:3" + } + ] + } } - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2400:39:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 154, - "nodeType": "ExpressionStatement", - "src": "2400:39:2" + ] + } } ] }, - "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.", - "id": 156, + "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 gasToken Token address (or 0 if ETH) that is used for the payment.\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.", + "id": 212, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "execPayTransaction", + "name": "execAndPayTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 87, + "id": 114, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 65, + "id": 90, "name": "to", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1480:10:2", + "scope": 212, + "src": "1700:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1789,10 +2222,10 @@ "typeString": "address" }, "typeName": { - "id": 64, + "id": 89, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1480:7:2", + "src": "1700:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1803,11 +2236,11 @@ }, { "constant": false, - "id": 67, + "id": 92, "name": "value", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1501:13:2", + "scope": 212, + "src": "1721:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1815,10 +2248,10 @@ "typeString": "uint256" }, "typeName": { - "id": 66, + "id": 91, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1501:7:2", + "src": "1721:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1829,11 +2262,11 @@ }, { "constant": false, - "id": 69, + "id": 94, "name": "data", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1525:10:2", + "scope": 212, + "src": "1745:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1841,10 +2274,10 @@ "typeString": "bytes" }, "typeName": { - "id": 68, + "id": 93, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1525:5:2", + "src": "1745:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1855,26 +2288,26 @@ }, { "constant": false, - "id": 71, + "id": 96, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1546:24:2", + "scope": 212, + "src": "1766:24:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 70, + "id": 95, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "1546:14:2", + "referencedDeclaration": 29, + "src": "1766:14:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -1883,11 +2316,11 @@ }, { "constant": false, - "id": 73, + "id": 98, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1581:17:2", + "scope": 212, + "src": "1801:17:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1895,10 +2328,10 @@ "typeString": "uint256" }, "typeName": { - "id": 72, + "id": 97, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1581:7:2", + "src": "1801:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1909,11 +2342,11 @@ }, { "constant": false, - "id": 75, + "id": 100, "name": "dataGas", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1608:15:2", + "scope": 212, + "src": "1828:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1921,10 +2354,10 @@ "typeString": "uint256" }, "typeName": { - "id": 74, + "id": 99, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1608:7:2", + "src": "1828:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1935,11 +2368,11 @@ }, { "constant": false, - "id": 77, + "id": 102, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1633:16:2", + "scope": 212, + "src": "1853:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1947,10 +2380,10 @@ "typeString": "uint256" }, "typeName": { - "id": 76, + "id": 101, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1633:7:2", + "src": "1853:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1961,11 +2394,37 @@ }, { "constant": false, - "id": 80, + "id": 104, + "name": "gasToken", + "nodeType": "VariableDeclaration", + "scope": 212, + "src": "1879:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1879:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 107, "name": "v", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1659:9:2", + "scope": 212, + "src": "1905:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1974,19 +2433,19 @@ }, "typeName": { "baseType": { - "id": 78, + "id": 105, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1659:5:2", + "src": "1905:5:3", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 79, + "id": 106, "length": null, "nodeType": "ArrayTypeName", - "src": "1659:7:2", + "src": "1905:7:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[]" @@ -1997,11 +2456,11 @@ }, { "constant": false, - "id": 83, + "id": 110, "name": "r", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1679:11:2", + "scope": 212, + "src": "1925:11:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2010,19 +2469,19 @@ }, "typeName": { "baseType": { - "id": 81, + "id": 108, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1679:7:2", + "src": "1925:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 82, + "id": 109, "length": null, "nodeType": "ArrayTypeName", - "src": "1679:9:2", + "src": "1925:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -2033,11 +2492,11 @@ }, { "constant": false, - "id": 86, + "id": 113, "name": "s", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1701:11:2", + "scope": 212, + "src": "1947:11:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2046,19 +2505,19 @@ }, "typeName": { "baseType": { - "id": 84, + "id": 111, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1701:7:2", + "src": "1947:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 85, + "id": 112, "length": null, "nodeType": "ArrayTypeName", - "src": "1701:9:2", + "src": "1947:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -2068,26 +2527,26 @@ "visibility": "internal" } ], - "src": "1470:248:2" + "src": "1690:274:3" }, "payable": false, "returnParameters": { - "id": 88, + "id": 115, "nodeType": "ParameterList", "parameters": [], - "src": "1738:0:2" + "src": "1984:0:3" }, - "scope": 324, - "src": "1443:1003:2", + "scope": 397, + "src": "1660:1367:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 173, + "id": 229, "nodeType": "Block", - "src": "3001:86:2", + "src": "3582:86:3", "statements": [ { "expression": { @@ -2096,7 +2555,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 171, + "id": 227, "isConstant": false, "isLValue": false, "isPure": false, @@ -2107,7 +2566,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 169, + "id": 225, "isConstant": false, "isLValue": false, "isPure": false, @@ -2118,19 +2577,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 167, + "id": 223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 165, + "id": 221, "name": "executionGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 158, - "src": "3018:12:2", + "referencedDeclaration": 214, + "src": "3599:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2140,18 +2599,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 166, + "id": 222, "name": "dataGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 160, - "src": "3033:7:2", + "referencedDeclaration": 216, + "src": "3614:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3018:22:2", + "src": "3599:22:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2161,18 +2620,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 168, + "id": 224, "name": "PAYMENT_GAS_COSTS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59, - "src": "3043:17:2", + "referencedDeclaration": 84, + "src": "3624:17:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3018:42:2", + "src": "3599:42:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2182,32 +2641,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 170, + "id": 226, "name": "BASE_TX_GAS_COSTS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "3063:17:2", + "referencedDeclaration": 81, + "src": "3644:17:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3018:62:2", + "src": "3599:62:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 164, - "id": 172, + "functionReturnParameters": 220, + "id": 228, "nodeType": "Return", - "src": "3011:69:2" + "src": "3592:69:3" } ] }, "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).", - "id": 174, + "id": 230, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2215,16 +2674,16 @@ "name": "totalGasCosts", "nodeType": "FunctionDefinition", "parameters": { - "id": 161, + "id": 217, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 158, + "id": 214, "name": "executionGas", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "2901:20:2", + "scope": 230, + "src": "3482:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2232,10 +2691,10 @@ "typeString": "uint256" }, "typeName": { - "id": 157, + "id": 213, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2901:7:2", + "src": "3482:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2246,11 +2705,11 @@ }, { "constant": false, - "id": 160, + "id": 216, "name": "dataGas", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "2923:15:2", + "scope": 230, + "src": "3504:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2258,10 +2717,10 @@ "typeString": "uint256" }, "typeName": { - "id": 159, + "id": 215, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2923:7:2", + "src": "3504:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2271,20 +2730,20 @@ "visibility": "internal" } ], - "src": "2900:39:2" + "src": "3481:39:3" }, "payable": false, "returnParameters": { - "id": 164, + "id": 220, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 163, + "id": 219, "name": "", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "2987:7:2", + "scope": 230, + "src": "3568:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2292,10 +2751,10 @@ "typeString": "uint256" }, "typeName": { - "id": 162, + "id": 218, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2987:7:2", + "src": "3568:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2305,32 +2764,32 @@ "visibility": "internal" } ], - "src": "2986:9:2" + "src": "3567:9:3" }, - "scope": 324, - "src": "2878:209:2", + "scope": 397, + "src": "3459:209:3", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 210, + "id": 277, "nodeType": "Block", - "src": "3938:147:2", + "src": "4738:255:3", "statements": [ { "assignments": [ - 190 + 246 ], "declarations": [ { "constant": false, - "id": 190, + "id": 246, "name": "startGas", "nodeType": "VariableDeclaration", - "scope": 211, - "src": "3948:16:2", + "scope": 278, + "src": "4748:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2338,10 +2797,10 @@ "typeString": "uint256" }, "typeName": { - "id": 189, + "id": 245, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3948:7:2", + "src": "4748:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2351,24 +2810,24 @@ "visibility": "internal" } ], - "id": 193, + "id": 249, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 191, + "id": 247, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "3967:7:2", + "referencedDeclaration": 2591, + "src": "4767:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 192, + "id": 248, "isConstant": false, "isLValue": false, "isPure": false, @@ -2376,14 +2835,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3967:9:2", + "src": "4767:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3948:28:2" + "src": "4748:28:3" }, { "expression": { @@ -2394,12 +2853,12 @@ "arguments": [ { "argumentTypes": null, - "id": 196, + "id": 252, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 176, - "src": "4002:2:2", + "referencedDeclaration": 232, + "src": "4802:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2407,12 +2866,12 @@ }, { "argumentTypes": null, - "id": 197, + "id": 253, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 178, - "src": "4006:5:2", + "referencedDeclaration": 234, + "src": "4806:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2420,12 +2879,12 @@ }, { "argumentTypes": null, - "id": 198, + "id": 254, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "4013:4:2", + "referencedDeclaration": 236, + "src": "4813:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2433,14 +2892,14 @@ }, { "argumentTypes": null, - "id": 199, + "id": 255, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "4019:9:2", + "referencedDeclaration": 238, + "src": "4819:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -2449,18 +2908,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 200, + "id": 256, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "4030:7:2", + "referencedDeclaration": 2591, + "src": "4830:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 201, + "id": 257, "isConstant": false, "isLValue": false, "isPure": false, @@ -2468,7 +2927,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4030:9:2", + "src": "4830:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2490,7 +2949,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -2498,18 +2957,18 @@ "typeString": "uint256" } ], - "id": 195, + "id": 251, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 860, - "src": "3994:7:2", + "referencedDeclaration": 989, + "src": "4794:7:3", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" } }, - "id": 202, + "id": 258, "isConstant": false, "isLValue": false, "isPure": false, @@ -2517,7 +2976,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3994:46:2", + "src": "4794:46:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2531,21 +2990,21 @@ "typeString": "bool" } ], - "id": 194, + "id": 250, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "3986:7:2", + "referencedDeclaration": 2601, + "src": "4786:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 203, + "id": 259, "isConstant": false, "isLValue": false, "isPure": false, @@ -2553,36 +3012,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3986:55:2", + "src": "4786:55:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 204, + "id": 260, "nodeType": "ExpressionStatement", - "src": "3986:55:2" + "src": "4786:55:3" }, { - "expression": { + "assignments": [ + 262 + ], + "declarations": [ + { + "constant": false, + "id": 262, + "name": "requiredGas", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "4851:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 261, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4851:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 267, + "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 208, + "id": 266, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 205, + "id": 263, "name": "startGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 190, - "src": "4058:8:2", + "referencedDeclaration": 246, + "src": "4873:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2595,18 +3086,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 206, + "id": 264, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "4069:7:2", + "referencedDeclaration": 2591, + "src": "4884:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 207, + "id": 265, "isConstant": false, "isLValue": false, "isPure": false, @@ -2614,64 +3105,209 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4069:9:2", + "src": "4884:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4058:20:2", + "src": "4873:20:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 188, - "id": 209, - "nodeType": "Return", - "src": "4051:27:2" + "nodeType": "VariableDeclarationStatement", + "src": "4851:42:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 272, + "name": "requiredGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 262, + "src": "4972:11:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 270, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2585, + "src": "4955:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4955:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4955:29:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4948:6:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": "string" + }, + "id": 274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4948:37:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 268, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2603, + 2604 + ], + "referencedDeclaration": 2604, + "src": "4941:6:3", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4941:45:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 276, + "nodeType": "ExpressionStatement", + "src": "4941:45:3" } ] }, - "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, + "documentation": "@dev Allows to estimate a Safe transaction. \n This method is only meant for estimation purpose, therfore two different protection mechanism against execution in a transaction have been made:\n 1.) The method can only be called from the safe itself\n 2.) The response is returned with a revert\n 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 `execAndPayTransaction`\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": 278, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 185, + "id": 241, "modifierName": { "argumentTypes": null, - "id": 184, + "id": 240, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "3897:10:2", + "referencedDeclaration": 1618, + "src": "4697:10:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3897:10:2" + "src": "4697:10:3" } ], "name": "requiredTxGas", "nodeType": "FunctionDefinition", "parameters": { - "id": 183, + "id": 239, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 176, + "id": 232, "name": "to", "nodeType": "VariableDeclaration", - "scope": 211, - "src": "3809:10:2", + "scope": 278, + "src": "4609:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2679,10 +3315,10 @@ "typeString": "address" }, "typeName": { - "id": 175, + "id": 231, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3809:7:2", + "src": "4609:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2693,11 +3329,11 @@ }, { "constant": false, - "id": 178, + "id": 234, "name": "value", "nodeType": "VariableDeclaration", - "scope": 211, - "src": "3821:13:2", + "scope": 278, + "src": "4621:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2705,10 +3341,10 @@ "typeString": "uint256" }, "typeName": { - "id": 177, + "id": 233, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3821:7:2", + "src": "4621:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2719,11 +3355,11 @@ }, { "constant": false, - "id": 180, + "id": 236, "name": "data", "nodeType": "VariableDeclaration", - "scope": 211, - "src": "3836:10:2", + "scope": 278, + "src": "4636:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2731,10 +3367,10 @@ "typeString": "bytes" }, "typeName": { - "id": 179, + "id": 235, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3836:5:2", + "src": "4636:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2745,26 +3381,26 @@ }, { "constant": false, - "id": 182, + "id": 238, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 211, - "src": "3848:24:2", + "scope": 278, + "src": "4648:24:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 181, + "id": 237, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "3848:14:2", + "referencedDeclaration": 29, + "src": "4648:14:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -2772,20 +3408,20 @@ "visibility": "internal" } ], - "src": "3808:65:2" + "src": "4608:65:3" }, "payable": false, "returnParameters": { - "id": 188, + "id": 244, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 187, + "id": 243, "name": "", "nodeType": "VariableDeclaration", - "scope": 211, - "src": "3925:7:2", + "scope": 278, + "src": "4725:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2793,10 +3429,10 @@ "typeString": "uint256" }, "typeName": { - "id": 186, + "id": 242, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3925:7:2", + "src": "4725:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2806,32 +3442,32 @@ "visibility": "internal" } ], - "src": "3924:9:2" + "src": "4724:9:3" }, - "scope": 324, - "src": "3786:299:2", + "scope": 397, + "src": "4586:407:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 282, + "id": 349, "nodeType": "Block", - "src": "4195:437:2", + "src": "5103:437:3", "statements": [ { "assignments": [ - 226 + 293 ], "declarations": [ { "constant": false, - "id": 226, + "id": 293, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 283, - "src": "4257:17:2", + "scope": 350, + "src": "5165:17:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2839,10 +3475,10 @@ "typeString": "address" }, "typeName": { - "id": 225, + "id": 292, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4257:7:2", + "src": "5165:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2852,21 +3488,21 @@ "visibility": "internal" } ], - "id": 230, + "id": 297, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 228, + "id": 295, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4285:1:2", + "src": "5193:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2882,20 +3518,20 @@ "typeString": "int_const 0" } ], - "id": 227, + "id": 294, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4277:7:2", + "src": "5185:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 229, + "id": 296, "isConstant": false, "isLValue": false, "isPure": true, @@ -2903,25 +3539,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4277:10:2", + "src": "5185:10:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4257:30:2" + "src": "5165:30:3" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 232, + "id": 299, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 283, - "src": "4297:20:2", + "scope": 350, + "src": "5205:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2929,10 +3565,10 @@ "typeString": "address" }, "typeName": { - "id": 231, + "id": 298, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4297:7:2", + "src": "5205:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2942,21 +3578,21 @@ "visibility": "internal" } ], - "id": 233, + "id": 300, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "4297:20:2" + "src": "5205:20:3" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 235, + "id": 302, "name": "i", "nodeType": "VariableDeclaration", - "scope": 283, - "src": "4327:9:2", + "scope": 350, + "src": "5235:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2964,10 +3600,10 @@ "typeString": "uint256" }, "typeName": { - "id": 234, + "id": 301, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4327:7:2", + "src": "5235:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2977,33 +3613,33 @@ "visibility": "internal" } ], - "id": 236, + "id": 303, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "4327:9:2" + "src": "5235:9:3" }, { "body": { - "id": 280, + "id": 347, "nodeType": "Block", - "src": "4420:206:2", + "src": "5328:206:3", "statements": [ { "expression": { "argumentTypes": null, - "id": 260, + "id": 327, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 247, + "id": 314, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "4434:12:2", + "referencedDeclaration": 299, + "src": "5342:12:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3016,12 +3652,12 @@ "arguments": [ { "argumentTypes": null, - "id": 249, + "id": 316, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 213, - "src": "4459:4:2", + "referencedDeclaration": 280, + "src": "5367:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3031,26 +3667,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 250, + "id": 317, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 216, - "src": "4465:1:2", + "referencedDeclaration": 283, + "src": "5373:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" } }, - "id": 252, + "id": 319, "indexExpression": { "argumentTypes": null, - "id": 251, + "id": 318, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "4467:1:2", + "referencedDeclaration": 302, + "src": "5375:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3061,7 +3697,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4465:4:2", + "src": "5373:4:3", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3071,26 +3707,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 253, + "id": 320, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 219, - "src": "4471:1:2", + "referencedDeclaration": 286, + "src": "5379:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 255, + "id": 322, "indexExpression": { "argumentTypes": null, - "id": 254, + "id": 321, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "4473:1:2", + "referencedDeclaration": 302, + "src": "5381:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3101,7 +3737,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4471:4:2", + "src": "5379:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3111,26 +3747,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 256, + "id": 323, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 222, - "src": "4477:1:2", + "referencedDeclaration": 289, + "src": "5385:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 258, + "id": 325, "indexExpression": { "argumentTypes": null, - "id": 257, + "id": 324, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "4479:1:2", + "referencedDeclaration": 302, + "src": "5387:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3141,7 +3777,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4477:4:2", + "src": "5385:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3167,18 +3803,18 @@ "typeString": "bytes32" } ], - "id": 248, + "id": 315, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2388, - "src": "4449:9:2", + "referencedDeclaration": 2590, + "src": "5357:9:3", "typeDescriptions": { "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" } }, - "id": 259, + "id": 326, "isConstant": false, "isLValue": false, "isPure": false, @@ -3186,21 +3822,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4449:33:2", + "src": "5357:33:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4434:48:2", + "src": "5342:48:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 261, + "id": 328, "nodeType": "ExpressionStatement", - "src": "4434:48:2" + "src": "5342:48:3" }, { "expression": { @@ -3212,7 +3848,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 267, + "id": 334, "isConstant": false, "isLValue": false, "isPure": false, @@ -3221,26 +3857,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 263, + "id": 330, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "4504:6:2", + "referencedDeclaration": 1114, + "src": "5412:6:3", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 265, + "id": 332, "indexExpression": { "argumentTypes": null, - "id": 264, + "id": 331, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "4511:12:2", + "referencedDeclaration": 299, + "src": "5419:12:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3251,7 +3887,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4504:20:2", + "src": "5412:20:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3262,14 +3898,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 266, + "id": 333, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4528:1:2", + "src": "5436:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3277,7 +3913,7 @@ }, "value": "0" }, - "src": "4504:25:2", + "src": "5412:25:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3291,21 +3927,21 @@ "typeString": "bool" } ], - "id": 262, + "id": 329, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "4496:7:2", + "referencedDeclaration": 2601, + "src": "5404:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 268, + "id": 335, "isConstant": false, "isLValue": false, "isPure": false, @@ -3313,15 +3949,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4496:34:2", + "src": "5404:34:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 269, + "id": 336, "nodeType": "ExpressionStatement", - "src": "4496:34:2" + "src": "5404:34:3" }, { "expression": { @@ -3333,19 +3969,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 273, + "id": 340, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 271, + "id": 338, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "4552:12:2", + "referencedDeclaration": 299, + "src": "5460:12:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3355,18 +3991,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 272, + "id": 339, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "4567:9:2", + "referencedDeclaration": 293, + "src": "5475:9:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4552:24:2", + "src": "5460:24:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3380,21 +4016,21 @@ "typeString": "bool" } ], - "id": 270, + "id": 337, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "4544:7:2", + "referencedDeclaration": 2601, + "src": "5452:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 274, + "id": 341, "isConstant": false, "isLValue": false, "isPure": false, @@ -3402,32 +4038,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4544:33:2", + "src": "5452:33:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 275, + "id": 342, "nodeType": "ExpressionStatement", - "src": "4544:33:2" + "src": "5452:33:3" }, { "expression": { "argumentTypes": null, - "id": 278, + "id": 345, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 276, + "id": 343, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "4591:9:2", + "referencedDeclaration": 293, + "src": "5499:9:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3437,26 +4073,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 277, + "id": 344, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "4603:12:2", + "referencedDeclaration": 299, + "src": "5511:12:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4591:24:2", + "src": "5499:24:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 279, + "id": 346, "nodeType": "ExpressionStatement", - "src": "4591:24:2" + "src": "5499:24:3" } ] }, @@ -3466,19 +4102,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 243, + "id": 310, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 241, + "id": 308, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "4400:1:2", + "referencedDeclaration": 302, + "src": "5308:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3488,40 +4124,40 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 242, + "id": 309, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "4404:9:2", + "referencedDeclaration": 1118, + "src": "5312:9:3", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4400:13:2", + "src": "5308:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 281, + "id": 348, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 239, + "id": 306, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 237, + "id": 304, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "4393:1:2", + "referencedDeclaration": 302, + "src": "5301:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3532,14 +4168,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 238, + "id": 305, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4397:1:2", + "src": "5305:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3547,20 +4183,20 @@ }, "value": "0" }, - "src": "4393:5:2", + "src": "5301:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 240, + "id": 307, "nodeType": "ExpressionStatement", - "src": "4393:5:2" + "src": "5301:5:3" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 245, + "id": 312, "isConstant": false, "isLValue": false, "isPure": false, @@ -3568,15 +4204,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4415:3:2", + "src": "5323:3:3", "subExpression": { "argumentTypes": null, - "id": 244, + "id": 311, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "4415:1:2", + "referencedDeclaration": 302, + "src": "5323:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3587,17 +4223,17 @@ "typeString": "uint256" } }, - "id": 246, + "id": 313, "nodeType": "ExpressionStatement", - "src": "4415:3:2" + "src": "5323:3:3" }, "nodeType": "ForStatement", - "src": "4388:238:2" + "src": "5296:238:3" } ] }, "documentation": null, - "id": 283, + "id": 350, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3605,16 +4241,16 @@ "name": "checkHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 223, + "id": 290, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 213, + "id": 280, "name": "hash", "nodeType": "VariableDeclaration", - "scope": 283, - "src": "4110:12:2", + "scope": 350, + "src": "5018:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3622,10 +4258,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 212, + "id": 279, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4110:7:2", + "src": "5018:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3636,11 +4272,11 @@ }, { "constant": false, - "id": 216, + "id": 283, "name": "v", "nodeType": "VariableDeclaration", - "scope": 283, - "src": "4124:9:2", + "scope": 350, + "src": "5032:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3649,19 +4285,19 @@ }, "typeName": { "baseType": { - "id": 214, + "id": 281, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4124:5:2", + "src": "5032:5:3", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 215, + "id": 282, "length": null, "nodeType": "ArrayTypeName", - "src": "4124:7:2", + "src": "5032:7:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[]" @@ -3672,11 +4308,11 @@ }, { "constant": false, - "id": 219, + "id": 286, "name": "r", "nodeType": "VariableDeclaration", - "scope": 283, - "src": "4135:11:2", + "scope": 350, + "src": "5043:11:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3685,19 +4321,19 @@ }, "typeName": { "baseType": { - "id": 217, + "id": 284, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4135:7:2", + "src": "5043:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 218, + "id": 285, "length": null, "nodeType": "ArrayTypeName", - "src": "4135:9:2", + "src": "5043:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -3708,11 +4344,11 @@ }, { "constant": false, - "id": 222, + "id": 289, "name": "s", "nodeType": "VariableDeclaration", - "scope": 283, - "src": "4148:11:2", + "scope": 350, + "src": "5056:11:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3721,19 +4357,19 @@ }, "typeName": { "baseType": { - "id": 220, + "id": 287, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4148:7:2", + "src": "5056:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 221, + "id": 288, "length": null, "nodeType": "ArrayTypeName", - "src": "4148:9:2", + "src": "5056:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -3743,26 +4379,26 @@ "visibility": "internal" } ], - "src": "4109:51:2" + "src": "5017:51:3" }, "payable": false, "returnParameters": { - "id": 224, + "id": 291, "nodeType": "ParameterList", "parameters": [], - "src": "4195:0:2" + "src": "5103:0:3" }, - "scope": 324, - "src": "4091:541:2", + "scope": 397, + "src": "4999:541:3", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 322, + "id": 395, "nodeType": "Block", - "src": "5448:126:2", + "src": "6464:176:3", "statements": [ { "expression": { @@ -3773,290 +4409,359 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "30783139", - "id": 306, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30783139", + "id": 377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6526:4:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + }, + "value": "0x19" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + } + ], + "id": 376, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6521:4:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 378, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "5480:4:2", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "6521:10:3", "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" + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" } - ], - "id": 305, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5475:4:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" }, - "typeName": "byte" - }, - "id": 307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5475:10:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, - "hexValue": "30", - "id": 309, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6538:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6533:4:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 381, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "5492:1:2", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:7:3", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "id": 382, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2631, + "src": "6542:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$397", + "typeString": "contract GnosisSafePersonalEdition" + } + }, + { + "argumentTypes": null, + "id": 383, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 352, + "src": "6548:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 384, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 354, + "src": "6552:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 385, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 356, + "src": "6559:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 386, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 358, + "src": "6565:9:3", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "id": 387, + "name": "safeTxGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 360, + "src": "6576:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 388, + "name": "dataGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 362, + "src": "6587:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 389, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "6596:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 390, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 366, + "src": "6606:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 391, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 368, + "src": "6616:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$397", + "typeString": "contract GnosisSafePersonalEdition" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 308, + "expression": { + "argumentTypes": null, + "id": 374, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2585, + "src": "6504:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 375, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5487:4:2", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6504:16:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } }, - "id": 310, + "id": 392, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "typeConversion", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5487:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 311, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2423, - "src": "5496:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$324", - "typeString": "contract GnosisSafePersonalEdition" - } - }, - { - "argumentTypes": null, - "id": 312, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "5502:2:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 313, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 287, - "src": "5506:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 314, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "5513:4:2", + "src": "6504:119:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } - }, - { - "argumentTypes": null, - "id": 315, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "5519:9:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 316, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 293, - "src": "5530:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 317, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "5541:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 318, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 297, - "src": "5550:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 319, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 299, - "src": "5560:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } } ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$324", - "typeString": "contract GnosisSafePersonalEdition" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } ], - "id": 304, + "id": 373, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2390, - "src": "5465:9:2", + "referencedDeclaration": 2592, + "src": "6481:9:3", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 320, + "id": 393, "isConstant": false, "isLValue": false, "isPure": false, @@ -4064,21 +4769,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5465:102:2", + "src": "6481:152:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 303, - "id": 321, + "functionReturnParameters": 372, + "id": 394, "nodeType": "Return", - "src": "5458:109:2" + "src": "6474:159:3" } ] }, - "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.", - "id": 323, + "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 gasToken Token address (or 0 if ETH) that is used for the payment.\n @param _nonce Transaction nonce.\n @return Transaction hash.", + "id": 396, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4086,16 +4791,16 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 300, + "id": 369, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 285, + "id": 352, "name": "to", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5187:10:2", + "scope": 396, + "src": "6177:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4103,10 +4808,10 @@ "typeString": "address" }, "typeName": { - "id": 284, + "id": 351, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5187:7:2", + "src": "6177:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4117,11 +4822,11 @@ }, { "constant": false, - "id": 287, + "id": 354, "name": "value", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5208:13:2", + "scope": 396, + "src": "6198:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4129,10 +4834,10 @@ "typeString": "uint256" }, "typeName": { - "id": 286, + "id": 353, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5208:7:2", + "src": "6198:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4143,11 +4848,11 @@ }, { "constant": false, - "id": 289, + "id": 356, "name": "data", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5232:10:2", + "scope": 396, + "src": "6222:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4155,10 +4860,10 @@ "typeString": "bytes" }, "typeName": { - "id": 288, + "id": 355, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5232:5:2", + "src": "6222:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4169,26 +4874,26 @@ }, { "constant": false, - "id": 291, + "id": 358, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5253:24:2", + "scope": 396, + "src": "6243:24:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 290, + "id": 357, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "5253:14:2", + "referencedDeclaration": 29, + "src": "6243:14:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -4197,11 +4902,11 @@ }, { "constant": false, - "id": 293, + "id": 360, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5288:17:2", + "scope": 396, + "src": "6278:17:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4209,10 +4914,10 @@ "typeString": "uint256" }, "typeName": { - "id": 292, + "id": 359, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5288:7:2", + "src": "6278:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4223,11 +4928,11 @@ }, { "constant": false, - "id": 295, + "id": 362, "name": "dataGas", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5316:15:2", + "scope": 396, + "src": "6306:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4235,10 +4940,10 @@ "typeString": "uint256" }, "typeName": { - "id": 294, + "id": 361, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5316:7:2", + "src": "6306:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4249,11 +4954,11 @@ }, { "constant": false, - "id": 297, + "id": 364, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5342:16:2", + "scope": 396, + "src": "6332:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4261,10 +4966,10 @@ "typeString": "uint256" }, "typeName": { - "id": 296, + "id": 363, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5342:7:2", + "src": "6332:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4275,11 +4980,37 @@ }, { "constant": false, - "id": 299, + "id": 366, + "name": "gasToken", + "nodeType": "VariableDeclaration", + "scope": 396, + "src": "6359:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6359:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 368, "name": "_nonce", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5369:14:2", + "scope": 396, + "src": "6385:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4287,10 +5018,10 @@ "typeString": "uint256" }, "typeName": { - "id": 298, + "id": 367, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5369:7:2", + "src": "6385:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4300,20 +5031,20 @@ "visibility": "internal" } ], - "src": "5177:212:2" + "src": "6167:238:3" }, "payable": false, "returnParameters": { - "id": 303, + "id": 372, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 302, + "id": 371, "name": "", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5435:7:2", + "scope": 396, + "src": "6451:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4321,10 +5052,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 301, + "id": 370, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5435:7:2", + "src": "6451:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4334,60 +5065,71 @@ "visibility": "internal" } ], - "src": "5434:9:2" + "src": "6450:9:3" }, - "scope": 324, - "src": "5150:424:2", + "scope": 397, + "src": "6140:500:3", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 325, - "src": "314:5262:2" + "scope": 398, + "src": "449:6193:3" } ], - "src": "0:5577:2" + "src": "0:6643:3" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafePersonalEdition.sol", "exportedSymbols": { "GnosisSafePersonalEdition": [ - 324 + 397 ] }, - "id": 325, + "id": 398, "nodeType": "SourceUnit", "nodes": [ { - "id": 41, + "id": 65, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:2" + "src": "0:23:3" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ERC20Token.sol", + "file": "./interfaces/ERC20Token.sol", + "id": 66, + "nodeType": "ImportDirective", + "scope": 398, + "sourceUnit": 1686, + "src": "24:37:3", + "symbolAliases": [], + "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "file": "./GnosisSafe.sol", - "id": 42, + "id": 67, "nodeType": "ImportDirective", - "scope": 325, - "sourceUnit": 40, - "src": "24:26:2", + "scope": 398, + "sourceUnit": 64, + "src": "62:26:3", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 43, + "id": 68, "nodeType": "ImportDirective", - "scope": 325, - "sourceUnit": 581, - "src": "51:26:2", + "scope": 398, + "sourceUnit": 653, + "src": "89:26:3", "symbolAliases": [], "unitAlias": "" }, @@ -4397,68 +5139,68 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 44, + "id": 69, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 580, - "src": "352:10:2", + "referencedDeclaration": 652, + "src": "487:10:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$580", + "typeIdentifier": "t_contract$_MasterCopy_$652", "typeString": "contract MasterCopy" } }, - "id": 45, + "id": 70, "nodeType": "InheritanceSpecifier", - "src": "352:10:2" + "src": "487:10:3" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 46, + "id": 71, "name": "GnosisSafe", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 39, - "src": "364:10:2", + "referencedDeclaration": 63, + "src": "499:10:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$39", + "typeIdentifier": "t_contract$_GnosisSafe_$63", "typeString": "contract GnosisSafe" } }, - "id": 47, + "id": 72, "nodeType": "InheritanceSpecifier", - "src": "364:10:2" + "src": "499:10:3" } ], "contractDependencies": [ - 39, - 580, - 971, - 1343, - 1359 + 63, + 652, + 1100, + 1472, + 1619 ], "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 - \n @author Richard Meissner - ", + "documentation": "@title Gnosis Safe Personal Edition - A multisignature wallet with support for confirmations using signed messages based on ERC191.\n @author Stefan George - \n @author Richard Meissner - \n @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment", "fullyImplemented": true, - "id": 324, + "id": 397, "linearizedBaseContracts": [ - 324, - 39, - 1343, - 971, - 580, - 1359 + 397, + 63, + 1472, + 1100, + 652, + 1619 ], "name": "GnosisSafePersonalEdition", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 50, + "id": 75, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 324, - "src": "382:60:2", + "scope": 397, + "src": "517:60:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4466,10 +5208,10 @@ "typeString": "string" }, "typeName": { - "id": 48, + "id": 73, "name": "string", "nodeType": "ElementaryTypeName", - "src": "382:6:2", + "src": "517:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4478,14 +5220,14 @@ "value": { "argumentTypes": null, "hexValue": "476e6f736973205361666520506572736f6e616c2045646974696f6e", - "id": 49, + "id": 74, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "412:30:2", + "src": "547:30:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b657d2895d137bf089ce1df776b732639b1ebc2a3aec3bd837e225e9e0965154", @@ -4497,11 +5239,11 @@ }, { "constant": true, - "id": 53, + "id": 78, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 324, - "src": "448:40:2", + "scope": 397, + "src": "583:40:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4509,10 +5251,10 @@ "typeString": "string" }, "typeName": { - "id": 51, + "id": 76, "name": "string", "nodeType": "ElementaryTypeName", - "src": "448:6:2", + "src": "583:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4521,14 +5263,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 52, + "id": 77, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "481:7:2", + "src": "616:7:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -4540,11 +5282,11 @@ }, { "constant": true, - "id": 56, + "id": 81, "name": "BASE_TX_GAS_COSTS", "nodeType": "VariableDeclaration", - "scope": 324, - "src": "499:51:2", + "scope": 397, + "src": "634:51:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4552,10 +5294,10 @@ "typeString": "uint256" }, "typeName": { - "id": 54, + "id": 79, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "499:7:2", + "src": "634:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4564,14 +5306,14 @@ "value": { "argumentTypes": null, "hexValue": "3231303030", - "id": 55, + "id": 80, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "545:5:2", + "src": "680:5:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_21000_by_1", @@ -4583,11 +5325,11 @@ }, { "constant": true, - "id": 59, + "id": 84, "name": "PAYMENT_GAS_COSTS", "nodeType": "VariableDeclaration", - "scope": 324, - "src": "556:51:2", + "scope": 397, + "src": "691:51:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4595,10 +5337,10 @@ "typeString": "uint256" }, "typeName": { - "id": 57, + "id": 82, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "556:7:2", + "src": "691:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4607,14 +5349,14 @@ "value": { "argumentTypes": null, "hexValue": "3131303030", - "id": 58, + "id": 83, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "602:5:2", + "src": "737:5:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_11000_by_1", @@ -4627,24 +5369,24 @@ { "anonymous": false, "documentation": null, - "id": 61, + "id": 86, "name": "ExecutionFailed", "nodeType": "EventDefinition", "parameters": { - "id": 60, + "id": 85, "nodeType": "ParameterList", "parameters": [], - "src": "635:2:2" + "src": "770:2:3" }, - "src": "614:24:2" + "src": "749:24:3" }, { "constant": false, - "id": 63, + "id": 88, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 324, - "src": "644:20:2", + "scope": 397, + "src": "779:20:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4652,10 +5394,10 @@ "typeString": "uint256" }, "typeName": { - "id": 62, + "id": 87, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "644:7:2", + "src": "779:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4666,22 +5408,22 @@ }, { "body": { - "id": 155, + "id": 211, "nodeType": "Block", - "src": "1738:708:2", + "src": "1984:1043:3", "statements": [ { "assignments": [ - 90 + 117 ], "declarations": [ { "constant": false, - "id": 90, + "id": 117, "name": "startGas", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1748:16:2", + "scope": 212, + "src": "1994:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4689,10 +5431,10 @@ "typeString": "uint256" }, "typeName": { - "id": 89, + "id": 116, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1748:7:2", + "src": "1994:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4702,24 +5444,24 @@ "visibility": "internal" } ], - "id": 93, + "id": 120, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 91, + "id": 118, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "1767:7:2", + "referencedDeclaration": 2591, + "src": "2013:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 92, + "id": 119, "isConstant": false, "isLValue": false, "isPure": false, @@ -4727,14 +5469,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1767:9:2", + "src": "2013:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1748:28:2" + "src": "1994:28:3" }, { "expression": { @@ -4745,12 +5487,12 @@ "arguments": [ { "argumentTypes": null, - "id": 96, + "id": 123, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "1815:2:2", + "referencedDeclaration": 90, + "src": "2061:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4758,12 +5500,12 @@ }, { "argumentTypes": null, - "id": 97, + "id": 124, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "1819:5:2", + "referencedDeclaration": 92, + "src": "2065:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4771,12 +5513,12 @@ }, { "argumentTypes": null, - "id": 98, + "id": 125, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "1826:4:2", + "referencedDeclaration": 94, + "src": "2072:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -4784,25 +5526,25 @@ }, { "argumentTypes": null, - "id": 99, + "id": 126, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "1832:9:2", + "referencedDeclaration": 96, + "src": "2078:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 100, + "id": 127, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "1843:9:2", + "referencedDeclaration": 98, + "src": "2089:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4810,12 +5552,12 @@ }, { "argumentTypes": null, - "id": 101, + "id": 128, "name": "dataGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "1854:7:2", + "referencedDeclaration": 100, + "src": "2100:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4823,12 +5565,12 @@ }, { "argumentTypes": null, - "id": 102, + "id": 129, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "1863:8:2", + "referencedDeclaration": 102, + "src": "2109:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4836,12 +5578,25 @@ }, { "argumentTypes": null, - "id": 103, + "id": 130, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 104, + "src": "2119:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 131, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "1873:5:2", + "referencedDeclaration": 88, + "src": "2129:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4863,7 +5618,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -4878,23 +5633,27 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], - "id": 95, + "id": 122, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 323, - "src": "1796:18:2", + "referencedDeclaration": 396, + "src": "2042:18:3", "typeDescriptions": { - "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_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,uint256) view returns (bytes32)" + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256,uint256,uint256,address,uint256) view returns (bytes32)" } }, - "id": 104, + "id": 132, "isConstant": false, "isLValue": false, "isPure": false, @@ -4902,7 +5661,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1796:83:2", + "src": "2042:93:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4910,12 +5669,12 @@ }, { "argumentTypes": null, - "id": 105, + "id": 133, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "1881:1:2", + "referencedDeclaration": 107, + "src": "2137:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" @@ -4923,12 +5682,12 @@ }, { "argumentTypes": null, - "id": 106, + "id": 134, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 83, - "src": "1884:1:2", + "referencedDeclaration": 110, + "src": "2140:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -4936,12 +5695,12 @@ }, { "argumentTypes": null, - "id": 107, + "id": 135, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "1887:1:2", + "referencedDeclaration": 113, + "src": "2143:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -4967,18 +5726,18 @@ "typeString": "bytes32[] memory" } ], - "id": 94, + "id": 121, "name": "checkHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 283, - "src": "1786:9:2", + "referencedDeclaration": 350, + "src": "2032:9:3", "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" } }, - "id": 108, + "id": 136, "isConstant": false, "isLValue": false, "isPure": false, @@ -4986,20 +5745,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1786:103:2", + "src": "2032:113:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 109, + "id": 137, "nodeType": "ExpressionStatement", - "src": "1786:103:2" + "src": "2032:113:3" }, { "expression": { "argumentTypes": null, - "id": 111, + "id": 139, "isConstant": false, "isLValue": false, "isPure": false, @@ -5007,15 +5766,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1950:7:2", + "src": "2206:7:3", "subExpression": { "argumentTypes": null, - "id": 110, + "id": 138, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "1950:5:2", + "referencedDeclaration": 88, + "src": "2206:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5026,9 +5785,9 @@ "typeString": "uint256" } }, - "id": 112, + "id": 140, "nodeType": "ExpressionStatement", - "src": "1950:7:2" + "src": "2206:7:3" }, { "expression": { @@ -5040,7 +5799,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 119, + "id": 147, "isConstant": false, "isLValue": false, "isPure": false, @@ -5051,7 +5810,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 117, + "id": 145, "isConstant": false, "isLValue": false, "isPure": false, @@ -5061,18 +5820,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 114, + "id": 142, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "1975:7:2", + "referencedDeclaration": 2591, + "src": "2231:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 115, + "id": 143, "isConstant": false, "isLValue": false, "isPure": false, @@ -5080,7 +5839,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1975:9:2", + "src": "2231:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5090,18 +5849,18 @@ "operator": "-", "rightExpression": { "argumentTypes": null, - "id": 116, + "id": 144, "name": "PAYMENT_GAS_COSTS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59, - "src": "1987:17:2", + "referencedDeclaration": 84, + "src": "2243:17:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1975:29:2", + "src": "2231:29:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5111,18 +5870,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 118, + "id": 146, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "2008:9:2", + "referencedDeclaration": 98, + "src": "2264:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1975:42:2", + "src": "2231:42:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5136,21 +5895,21 @@ "typeString": "bool" } ], - "id": 113, + "id": 141, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1967:7:2", + "referencedDeclaration": 2601, + "src": "2223:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 120, + "id": 148, "isConstant": false, "isLValue": false, "isPure": false, @@ -5158,20 +5917,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1967:51:2", + "src": "2223:51:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 121, + "id": 149, "nodeType": "ExpressionStatement", - "src": "1967:51:2" + "src": "2223:51:3" }, { "condition": { "argumentTypes": null, - "id": 129, + "id": 157, "isConstant": false, "isLValue": false, "isPure": false, @@ -5179,18 +5938,18 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2032:47:2", + "src": "2288:47:3", "subExpression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 123, + "id": 151, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "2041:2:2", + "referencedDeclaration": 90, + "src": "2297:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5198,12 +5957,12 @@ }, { "argumentTypes": null, - "id": 124, + "id": 152, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "2045:5:2", + "referencedDeclaration": 92, + "src": "2301:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5211,12 +5970,12 @@ }, { "argumentTypes": null, - "id": 125, + "id": 153, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "2052:4:2", + "referencedDeclaration": 94, + "src": "2308:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5224,25 +5983,25 @@ }, { "argumentTypes": null, - "id": 126, + "id": 154, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "2058:9:2", + "referencedDeclaration": 96, + "src": "2314:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 127, + "id": 155, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "2069:9:2", + "referencedDeclaration": 98, + "src": "2325:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5264,7 +6023,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -5272,18 +6031,18 @@ "typeString": "uint256" } ], - "id": 122, + "id": 150, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 860, - "src": "2033:7:2", + "referencedDeclaration": 989, + "src": "2289:7:3", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" } }, - "id": 128, + "id": 156, "isConstant": false, "isLValue": false, "isPure": false, @@ -5291,7 +6050,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2033:46:2", + "src": "2289:46:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5303,13 +6062,13 @@ } }, "falseBody": null, - "id": 134, + "id": 162, "nodeType": "IfStatement", - "src": "2028:100:2", + "src": "2284:100:3", "trueBody": { - "id": 133, + "id": 161, "nodeType": "Block", - "src": "2081:47:2", + "src": "2337:47:3", "statements": [ { "eventCall": { @@ -5317,18 +6076,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 130, + "id": 158, "name": "ExecutionFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "2100:15:2", + "referencedDeclaration": 86, + "src": "2356:15:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 131, + "id": 159, "isConstant": false, "isLValue": false, "isPure": false, @@ -5336,98 +6095,214 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2100:17:2", + "src": "2356:17:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 132, + "id": 160, "nodeType": "EmitStatement", - "src": "2095:22:2" + "src": "2351:22:3" } ] } }, { - "assignments": [ - 136 - ], - "declarations": [ - { - "constant": false, - "id": 136, - "name": "gasCosts", - "nodeType": "VariableDeclaration", - "scope": 156, - "src": "2137:16:2", - "stateVariable": false, - "storageLocation": "default", + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 163, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 102, + "src": "2537:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2548:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "typeName": { - "id": 135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2137:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" + "value": "0" + }, + "src": "2537:12:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" } - ], - "id": 144, - "initialValue": { - "argumentTypes": null, - "arguments": [ + }, + "falseBody": null, + "id": 210, + "nodeType": "IfStatement", + "src": "2533:486:3", + "trueBody": { + "id": 209, + "nodeType": "Block", + "src": "2551:468:3", + "statements": [ { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 138, - "name": "startGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 90, - "src": "2170:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "assignments": [ + 167 + ], + "declarations": [ + { + "constant": false, + "id": 167, + "name": "gasCosts", + "nodeType": "VariableDeclaration", + "scope": 212, + "src": "2565:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 166, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2565:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { + ], + "id": 175, + "initialValue": { "argumentTypes": null, - "arguments": [], + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 169, + "name": "startGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 117, + "src": "2598:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 170, + "name": "gasleft", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2591, + "src": "2609:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2609:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2598:20:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 173, + "name": "dataGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 100, + "src": "2620:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], "expression": { - "argumentTypes": [], - "id": 139, - "name": "gasleft", + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 168, + "name": "totalGasCosts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "2181:7:2", + "referencedDeclaration": 230, + "src": "2584:13:3", "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" } }, - "id": 140, + "id": 174, "isConstant": false, "isLValue": false, "isPure": false, @@ -5435,210 +6310,491 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2181:9:2", + "src": "2584:44:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2170:20:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } + "nodeType": "VariableDeclarationStatement", + "src": "2565:63:3" }, { - "argumentTypes": null, - "id": 142, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "2192:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 137, - "name": "totalGasCosts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 174, - "src": "2156:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2156:44:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2137:63:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 152, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "assignments": [ + 177 + ], + "declarations": [ + { + "constant": false, + "id": 177, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 212, + "src": "2642:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2642:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 181, + "initialValue": { "argumentTypes": null, - "id": 150, - "name": "gasCosts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 136, - "src": "2419:8:2", + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 178, + "name": "gasCosts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2659:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 179, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 102, + "src": "2670:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2659:19:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 151, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2430:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2419:19:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 145, - "name": "tx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2408, - "src": "2400:2:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_transaction", - "typeString": "tx" - } - }, - "id": 148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "origin", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2400:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } + "nodeType": "VariableDeclarationStatement", + "src": "2642:36:3" }, - "id": 149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2400:18:2", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 182, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 104, + "src": "2696:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2716:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2708:7:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2708:10:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2696:22:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 207, + "nodeType": "Block", + "src": "2852:157:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 201, + "name": "tx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2610, + "src": "2975:2:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_transaction", + "typeString": "tx" + } + }, + "id": 202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "origin", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2975:9:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 203, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "2986:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 198, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 104, + "src": "2956:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 197, + "name": "ERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "2945:10:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Token_$1685_$", + "typeString": "type(contract ERC20Token)" + } + }, + "id": 199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2945:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Token_$1685", + "typeString": "contract ERC20Token" + } + }, + "id": 200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1639, + "src": "2945:29:3", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2945:48:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 196, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2601, + 2602 + ], + "referencedDeclaration": 2601, + "src": "2937:7:3", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2937:57:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 206, + "nodeType": "ExpressionStatement", + "src": "2937:57:3" + } + ] + }, + "id": 208, + "nodeType": "IfStatement", + "src": "2692:317:3", + "trueBody": { + "id": 195, + "nodeType": "Block", + "src": "2720:126:3", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 192, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "2824:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 187, + "name": "tx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2610, + "src": "2805:2:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_transaction", + "typeString": "tx" + } + }, + "id": 190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "origin", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2805:9:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2805:18:3", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2805:26:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 194, + "nodeType": "ExpressionStatement", + "src": "2805:26:3" + } + ] + } } - }, - "id": 153, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2400:39:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 154, - "nodeType": "ExpressionStatement", - "src": "2400:39:2" + ] + } } ] }, - "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.", - "id": 156, + "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 gasToken Token address (or 0 if ETH) that is used for the payment.\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.", + "id": 212, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "execPayTransaction", + "name": "execAndPayTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 87, + "id": 114, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 65, + "id": 90, "name": "to", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1480:10:2", + "scope": 212, + "src": "1700:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5646,10 +6802,10 @@ "typeString": "address" }, "typeName": { - "id": 64, + "id": 89, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1480:7:2", + "src": "1700:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5660,11 +6816,11 @@ }, { "constant": false, - "id": 67, + "id": 92, "name": "value", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1501:13:2", + "scope": 212, + "src": "1721:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5672,10 +6828,10 @@ "typeString": "uint256" }, "typeName": { - "id": 66, + "id": 91, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1501:7:2", + "src": "1721:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5686,11 +6842,11 @@ }, { "constant": false, - "id": 69, + "id": 94, "name": "data", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1525:10:2", + "scope": 212, + "src": "1745:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5698,10 +6854,10 @@ "typeString": "bytes" }, "typeName": { - "id": 68, + "id": 93, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1525:5:2", + "src": "1745:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5712,26 +6868,26 @@ }, { "constant": false, - "id": 71, + "id": 96, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1546:24:2", + "scope": 212, + "src": "1766:24:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 70, + "id": 95, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "1546:14:2", + "referencedDeclaration": 29, + "src": "1766:14:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -5740,11 +6896,11 @@ }, { "constant": false, - "id": 73, + "id": 98, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1581:17:2", + "scope": 212, + "src": "1801:17:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5752,10 +6908,10 @@ "typeString": "uint256" }, "typeName": { - "id": 72, + "id": 97, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1581:7:2", + "src": "1801:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5766,11 +6922,11 @@ }, { "constant": false, - "id": 75, + "id": 100, "name": "dataGas", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1608:15:2", + "scope": 212, + "src": "1828:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5778,10 +6934,10 @@ "typeString": "uint256" }, "typeName": { - "id": 74, + "id": 99, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1608:7:2", + "src": "1828:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5792,11 +6948,11 @@ }, { "constant": false, - "id": 77, + "id": 102, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1633:16:2", + "scope": 212, + "src": "1853:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5804,10 +6960,10 @@ "typeString": "uint256" }, "typeName": { - "id": 76, + "id": 101, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1633:7:2", + "src": "1853:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5818,11 +6974,37 @@ }, { "constant": false, - "id": 80, + "id": 104, + "name": "gasToken", + "nodeType": "VariableDeclaration", + "scope": 212, + "src": "1879:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 103, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1879:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 107, "name": "v", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1659:9:2", + "scope": 212, + "src": "1905:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5831,19 +7013,19 @@ }, "typeName": { "baseType": { - "id": 78, + "id": 105, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1659:5:2", + "src": "1905:5:3", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 79, + "id": 106, "length": null, "nodeType": "ArrayTypeName", - "src": "1659:7:2", + "src": "1905:7:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[]" @@ -5854,11 +7036,11 @@ }, { "constant": false, - "id": 83, + "id": 110, "name": "r", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1679:11:2", + "scope": 212, + "src": "1925:11:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5867,19 +7049,19 @@ }, "typeName": { "baseType": { - "id": 81, + "id": 108, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1679:7:2", + "src": "1925:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 82, + "id": 109, "length": null, "nodeType": "ArrayTypeName", - "src": "1679:9:2", + "src": "1925:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -5890,11 +7072,11 @@ }, { "constant": false, - "id": 86, + "id": 113, "name": "s", "nodeType": "VariableDeclaration", - "scope": 156, - "src": "1701:11:2", + "scope": 212, + "src": "1947:11:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5903,19 +7085,19 @@ }, "typeName": { "baseType": { - "id": 84, + "id": 111, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1701:7:2", + "src": "1947:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 85, + "id": 112, "length": null, "nodeType": "ArrayTypeName", - "src": "1701:9:2", + "src": "1947:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -5925,26 +7107,26 @@ "visibility": "internal" } ], - "src": "1470:248:2" + "src": "1690:274:3" }, "payable": false, "returnParameters": { - "id": 88, + "id": 115, "nodeType": "ParameterList", "parameters": [], - "src": "1738:0:2" + "src": "1984:0:3" }, - "scope": 324, - "src": "1443:1003:2", + "scope": 397, + "src": "1660:1367:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 173, + "id": 229, "nodeType": "Block", - "src": "3001:86:2", + "src": "3582:86:3", "statements": [ { "expression": { @@ -5953,7 +7135,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 171, + "id": 227, "isConstant": false, "isLValue": false, "isPure": false, @@ -5964,7 +7146,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 169, + "id": 225, "isConstant": false, "isLValue": false, "isPure": false, @@ -5975,19 +7157,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 167, + "id": 223, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 165, + "id": 221, "name": "executionGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 158, - "src": "3018:12:2", + "referencedDeclaration": 214, + "src": "3599:12:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5997,18 +7179,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 166, + "id": 222, "name": "dataGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 160, - "src": "3033:7:2", + "referencedDeclaration": 216, + "src": "3614:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3018:22:2", + "src": "3599:22:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6018,18 +7200,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 168, + "id": 224, "name": "PAYMENT_GAS_COSTS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 59, - "src": "3043:17:2", + "referencedDeclaration": 84, + "src": "3624:17:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3018:42:2", + "src": "3599:42:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6039,32 +7221,32 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 170, + "id": 226, "name": "BASE_TX_GAS_COSTS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "3063:17:2", + "referencedDeclaration": 81, + "src": "3644:17:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3018:62:2", + "src": "3599:62:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 164, - "id": 172, + "functionReturnParameters": 220, + "id": 228, "nodeType": "Return", - "src": "3011:69:2" + "src": "3592:69:3" } ] }, "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).", - "id": 174, + "id": 230, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6072,16 +7254,16 @@ "name": "totalGasCosts", "nodeType": "FunctionDefinition", "parameters": { - "id": 161, + "id": 217, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 158, + "id": 214, "name": "executionGas", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "2901:20:2", + "scope": 230, + "src": "3482:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6089,10 +7271,10 @@ "typeString": "uint256" }, "typeName": { - "id": 157, + "id": 213, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2901:7:2", + "src": "3482:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6103,11 +7285,11 @@ }, { "constant": false, - "id": 160, + "id": 216, "name": "dataGas", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "2923:15:2", + "scope": 230, + "src": "3504:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6115,10 +7297,10 @@ "typeString": "uint256" }, "typeName": { - "id": 159, + "id": 215, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2923:7:2", + "src": "3504:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6128,20 +7310,20 @@ "visibility": "internal" } ], - "src": "2900:39:2" + "src": "3481:39:3" }, "payable": false, "returnParameters": { - "id": 164, + "id": 220, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 163, + "id": 219, "name": "", "nodeType": "VariableDeclaration", - "scope": 174, - "src": "2987:7:2", + "scope": 230, + "src": "3568:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6149,10 +7331,10 @@ "typeString": "uint256" }, "typeName": { - "id": 162, + "id": 218, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2987:7:2", + "src": "3568:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6162,32 +7344,32 @@ "visibility": "internal" } ], - "src": "2986:9:2" + "src": "3567:9:3" }, - "scope": 324, - "src": "2878:209:2", + "scope": 397, + "src": "3459:209:3", "stateMutability": "pure", "superFunction": null, "visibility": "public" }, { "body": { - "id": 210, + "id": 277, "nodeType": "Block", - "src": "3938:147:2", + "src": "4738:255:3", "statements": [ { "assignments": [ - 190 + 246 ], "declarations": [ { "constant": false, - "id": 190, + "id": 246, "name": "startGas", "nodeType": "VariableDeclaration", - "scope": 211, - "src": "3948:16:2", + "scope": 278, + "src": "4748:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6195,10 +7377,10 @@ "typeString": "uint256" }, "typeName": { - "id": 189, + "id": 245, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3948:7:2", + "src": "4748:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6208,24 +7390,24 @@ "visibility": "internal" } ], - "id": 193, + "id": 249, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 191, + "id": 247, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "3967:7:2", + "referencedDeclaration": 2591, + "src": "4767:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 192, + "id": 248, "isConstant": false, "isLValue": false, "isPure": false, @@ -6233,14 +7415,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3967:9:2", + "src": "4767:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "3948:28:2" + "src": "4748:28:3" }, { "expression": { @@ -6251,12 +7433,12 @@ "arguments": [ { "argumentTypes": null, - "id": 196, + "id": 252, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 176, - "src": "4002:2:2", + "referencedDeclaration": 232, + "src": "4802:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6264,12 +7446,12 @@ }, { "argumentTypes": null, - "id": 197, + "id": 253, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 178, - "src": "4006:5:2", + "referencedDeclaration": 234, + "src": "4806:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6277,12 +7459,12 @@ }, { "argumentTypes": null, - "id": 198, + "id": 254, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "4013:4:2", + "referencedDeclaration": 236, + "src": "4813:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6290,14 +7472,14 @@ }, { "argumentTypes": null, - "id": 199, + "id": 255, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "4019:9:2", + "referencedDeclaration": 238, + "src": "4819:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -6306,18 +7488,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 200, + "id": 256, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "4030:7:2", + "referencedDeclaration": 2591, + "src": "4830:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 201, + "id": 257, "isConstant": false, "isLValue": false, "isPure": false, @@ -6325,7 +7507,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4030:9:2", + "src": "4830:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6347,7 +7529,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -6355,18 +7537,18 @@ "typeString": "uint256" } ], - "id": 195, + "id": 251, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 860, - "src": "3994:7:2", + "referencedDeclaration": 989, + "src": "4794:7:3", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" } }, - "id": 202, + "id": 258, "isConstant": false, "isLValue": false, "isPure": false, @@ -6374,7 +7556,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3994:46:2", + "src": "4794:46:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6388,21 +7570,21 @@ "typeString": "bool" } ], - "id": 194, + "id": 250, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "3986:7:2", + "referencedDeclaration": 2601, + "src": "4786:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 203, + "id": 259, "isConstant": false, "isLValue": false, "isPure": false, @@ -6410,36 +7592,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3986:55:2", + "src": "4786:55:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 204, + "id": 260, "nodeType": "ExpressionStatement", - "src": "3986:55:2" + "src": "4786:55:3" }, { - "expression": { + "assignments": [ + 262 + ], + "declarations": [ + { + "constant": false, + "id": 262, + "name": "requiredGas", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "4851:19:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 261, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4851:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 267, + "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 208, + "id": 266, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 205, + "id": 263, "name": "startGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 190, - "src": "4058:8:2", + "referencedDeclaration": 246, + "src": "4873:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6452,18 +7666,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 206, + "id": 264, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "4069:7:2", + "referencedDeclaration": 2591, + "src": "4884:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 207, + "id": 265, "isConstant": false, "isLValue": false, "isPure": false, @@ -6471,64 +7685,209 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4069:9:2", + "src": "4884:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4058:20:2", + "src": "4873:20:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 188, - "id": 209, - "nodeType": "Return", - "src": "4051:27:2" + "nodeType": "VariableDeclarationStatement", + "src": "4851:42:3" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 272, + "name": "requiredGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 262, + "src": "4972:11:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 270, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2585, + "src": "4955:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 271, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4955:16:3", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4955:29:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4948:6:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": "string" + }, + "id": 274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4948:37:3", + "typeDescriptions": { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory", + "typeString": "string memory" + } + ], + "id": 268, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2603, + 2604 + ], + "referencedDeclaration": 2604, + "src": "4941:6:3", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4941:45:3", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 276, + "nodeType": "ExpressionStatement", + "src": "4941:45:3" } ] }, - "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, + "documentation": "@dev Allows to estimate a Safe transaction. \n This method is only meant for estimation purpose, therfore two different protection mechanism against execution in a transaction have been made:\n 1.) The method can only be called from the safe itself\n 2.) The response is returned with a revert\n 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 `execAndPayTransaction`\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": 278, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 185, + "id": 241, "modifierName": { "argumentTypes": null, - "id": 184, + "id": 240, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "3897:10:2", + "referencedDeclaration": 1618, + "src": "4697:10:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3897:10:2" + "src": "4697:10:3" } ], "name": "requiredTxGas", "nodeType": "FunctionDefinition", "parameters": { - "id": 183, + "id": 239, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 176, + "id": 232, "name": "to", "nodeType": "VariableDeclaration", - "scope": 211, - "src": "3809:10:2", + "scope": 278, + "src": "4609:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6536,10 +7895,10 @@ "typeString": "address" }, "typeName": { - "id": 175, + "id": 231, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3809:7:2", + "src": "4609:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6550,11 +7909,11 @@ }, { "constant": false, - "id": 178, + "id": 234, "name": "value", "nodeType": "VariableDeclaration", - "scope": 211, - "src": "3821:13:2", + "scope": 278, + "src": "4621:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6562,10 +7921,10 @@ "typeString": "uint256" }, "typeName": { - "id": 177, + "id": 233, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3821:7:2", + "src": "4621:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6576,11 +7935,11 @@ }, { "constant": false, - "id": 180, + "id": 236, "name": "data", "nodeType": "VariableDeclaration", - "scope": 211, - "src": "3836:10:2", + "scope": 278, + "src": "4636:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6588,10 +7947,10 @@ "typeString": "bytes" }, "typeName": { - "id": 179, + "id": 235, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3836:5:2", + "src": "4636:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6602,26 +7961,26 @@ }, { "constant": false, - "id": 182, + "id": 238, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 211, - "src": "3848:24:2", + "scope": 278, + "src": "4648:24:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 181, + "id": 237, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "3848:14:2", + "referencedDeclaration": 29, + "src": "4648:14:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -6629,20 +7988,20 @@ "visibility": "internal" } ], - "src": "3808:65:2" + "src": "4608:65:3" }, "payable": false, "returnParameters": { - "id": 188, + "id": 244, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 187, + "id": 243, "name": "", "nodeType": "VariableDeclaration", - "scope": 211, - "src": "3925:7:2", + "scope": 278, + "src": "4725:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6650,10 +8009,10 @@ "typeString": "uint256" }, "typeName": { - "id": 186, + "id": 242, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3925:7:2", + "src": "4725:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6663,32 +8022,32 @@ "visibility": "internal" } ], - "src": "3924:9:2" + "src": "4724:9:3" }, - "scope": 324, - "src": "3786:299:2", + "scope": 397, + "src": "4586:407:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 282, + "id": 349, "nodeType": "Block", - "src": "4195:437:2", + "src": "5103:437:3", "statements": [ { "assignments": [ - 226 + 293 ], "declarations": [ { "constant": false, - "id": 226, + "id": 293, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 283, - "src": "4257:17:2", + "scope": 350, + "src": "5165:17:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6696,10 +8055,10 @@ "typeString": "address" }, "typeName": { - "id": 225, + "id": 292, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4257:7:2", + "src": "5165:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6709,21 +8068,21 @@ "visibility": "internal" } ], - "id": 230, + "id": 297, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 228, + "id": 295, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4285:1:2", + "src": "5193:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6739,20 +8098,20 @@ "typeString": "int_const 0" } ], - "id": 227, + "id": 294, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4277:7:2", + "src": "5185:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 229, + "id": 296, "isConstant": false, "isLValue": false, "isPure": true, @@ -6760,25 +8119,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4277:10:2", + "src": "5185:10:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4257:30:2" + "src": "5165:30:3" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 232, + "id": 299, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 283, - "src": "4297:20:2", + "scope": 350, + "src": "5205:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6786,10 +8145,10 @@ "typeString": "address" }, "typeName": { - "id": 231, + "id": 298, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4297:7:2", + "src": "5205:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6799,21 +8158,21 @@ "visibility": "internal" } ], - "id": 233, + "id": 300, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "4297:20:2" + "src": "5205:20:3" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 235, + "id": 302, "name": "i", "nodeType": "VariableDeclaration", - "scope": 283, - "src": "4327:9:2", + "scope": 350, + "src": "5235:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6821,10 +8180,10 @@ "typeString": "uint256" }, "typeName": { - "id": 234, + "id": 301, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4327:7:2", + "src": "5235:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6834,33 +8193,33 @@ "visibility": "internal" } ], - "id": 236, + "id": 303, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "4327:9:2" + "src": "5235:9:3" }, { "body": { - "id": 280, + "id": 347, "nodeType": "Block", - "src": "4420:206:2", + "src": "5328:206:3", "statements": [ { "expression": { "argumentTypes": null, - "id": 260, + "id": 327, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 247, + "id": 314, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "4434:12:2", + "referencedDeclaration": 299, + "src": "5342:12:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6873,12 +8232,12 @@ "arguments": [ { "argumentTypes": null, - "id": 249, + "id": 316, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 213, - "src": "4459:4:2", + "referencedDeclaration": 280, + "src": "5367:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6888,26 +8247,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 250, + "id": 317, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 216, - "src": "4465:1:2", + "referencedDeclaration": 283, + "src": "5373:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" } }, - "id": 252, + "id": 319, "indexExpression": { "argumentTypes": null, - "id": 251, + "id": 318, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "4467:1:2", + "referencedDeclaration": 302, + "src": "5375:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6918,7 +8277,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4465:4:2", + "src": "5373:4:3", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6928,26 +8287,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 253, + "id": 320, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 219, - "src": "4471:1:2", + "referencedDeclaration": 286, + "src": "5379:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 255, + "id": 322, "indexExpression": { "argumentTypes": null, - "id": 254, + "id": 321, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "4473:1:2", + "referencedDeclaration": 302, + "src": "5381:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6958,7 +8317,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4471:4:2", + "src": "5379:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6968,26 +8327,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 256, + "id": 323, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 222, - "src": "4477:1:2", + "referencedDeclaration": 289, + "src": "5385:1:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 258, + "id": 325, "indexExpression": { "argumentTypes": null, - "id": 257, + "id": 324, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "4479:1:2", + "referencedDeclaration": 302, + "src": "5387:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6998,7 +8357,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4477:4:2", + "src": "5385:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7024,18 +8383,18 @@ "typeString": "bytes32" } ], - "id": 248, + "id": 315, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2388, - "src": "4449:9:2", + "referencedDeclaration": 2590, + "src": "5357:9:3", "typeDescriptions": { "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" } }, - "id": 259, + "id": 326, "isConstant": false, "isLValue": false, "isPure": false, @@ -7043,21 +8402,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4449:33:2", + "src": "5357:33:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4434:48:2", + "src": "5342:48:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 261, + "id": 328, "nodeType": "ExpressionStatement", - "src": "4434:48:2" + "src": "5342:48:3" }, { "expression": { @@ -7069,7 +8428,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 267, + "id": 334, "isConstant": false, "isLValue": false, "isPure": false, @@ -7078,26 +8437,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 263, + "id": 330, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "4504:6:2", + "referencedDeclaration": 1114, + "src": "5412:6:3", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 265, + "id": 332, "indexExpression": { "argumentTypes": null, - "id": 264, + "id": 331, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "4511:12:2", + "referencedDeclaration": 299, + "src": "5419:12:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7108,7 +8467,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4504:20:2", + "src": "5412:20:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7119,14 +8478,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 266, + "id": 333, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4528:1:2", + "src": "5436:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7134,7 +8493,7 @@ }, "value": "0" }, - "src": "4504:25:2", + "src": "5412:25:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7148,21 +8507,21 @@ "typeString": "bool" } ], - "id": 262, + "id": 329, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "4496:7:2", + "referencedDeclaration": 2601, + "src": "5404:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 268, + "id": 335, "isConstant": false, "isLValue": false, "isPure": false, @@ -7170,15 +8529,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4496:34:2", + "src": "5404:34:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 269, + "id": 336, "nodeType": "ExpressionStatement", - "src": "4496:34:2" + "src": "5404:34:3" }, { "expression": { @@ -7190,19 +8549,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 273, + "id": 340, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 271, + "id": 338, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "4552:12:2", + "referencedDeclaration": 299, + "src": "5460:12:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7212,18 +8571,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 272, + "id": 339, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "4567:9:2", + "referencedDeclaration": 293, + "src": "5475:9:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4552:24:2", + "src": "5460:24:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7237,21 +8596,21 @@ "typeString": "bool" } ], - "id": 270, + "id": 337, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "4544:7:2", + "referencedDeclaration": 2601, + "src": "5452:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 274, + "id": 341, "isConstant": false, "isLValue": false, "isPure": false, @@ -7259,32 +8618,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4544:33:2", + "src": "5452:33:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 275, + "id": 342, "nodeType": "ExpressionStatement", - "src": "4544:33:2" + "src": "5452:33:3" }, { "expression": { "argumentTypes": null, - "id": 278, + "id": 345, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 276, + "id": 343, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "4591:9:2", + "referencedDeclaration": 293, + "src": "5499:9:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7294,26 +8653,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 277, + "id": 344, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "4603:12:2", + "referencedDeclaration": 299, + "src": "5511:12:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4591:24:2", + "src": "5499:24:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 279, + "id": 346, "nodeType": "ExpressionStatement", - "src": "4591:24:2" + "src": "5499:24:3" } ] }, @@ -7323,19 +8682,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 243, + "id": 310, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 241, + "id": 308, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "4400:1:2", + "referencedDeclaration": 302, + "src": "5308:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7345,40 +8704,40 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 242, + "id": 309, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "4404:9:2", + "referencedDeclaration": 1118, + "src": "5312:9:3", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4400:13:2", + "src": "5308:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 281, + "id": 348, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 239, + "id": 306, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 237, + "id": 304, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "4393:1:2", + "referencedDeclaration": 302, + "src": "5301:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7389,14 +8748,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 238, + "id": 305, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4397:1:2", + "src": "5305:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7404,20 +8763,20 @@ }, "value": "0" }, - "src": "4393:5:2", + "src": "5301:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 240, + "id": 307, "nodeType": "ExpressionStatement", - "src": "4393:5:2" + "src": "5301:5:3" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 245, + "id": 312, "isConstant": false, "isLValue": false, "isPure": false, @@ -7425,15 +8784,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4415:3:2", + "src": "5323:3:3", "subExpression": { "argumentTypes": null, - "id": 244, + "id": 311, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 235, - "src": "4415:1:2", + "referencedDeclaration": 302, + "src": "5323:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7444,17 +8803,17 @@ "typeString": "uint256" } }, - "id": 246, + "id": 313, "nodeType": "ExpressionStatement", - "src": "4415:3:2" + "src": "5323:3:3" }, "nodeType": "ForStatement", - "src": "4388:238:2" + "src": "5296:238:3" } ] }, "documentation": null, - "id": 283, + "id": 350, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7462,16 +8821,16 @@ "name": "checkHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 223, + "id": 290, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 213, + "id": 280, "name": "hash", "nodeType": "VariableDeclaration", - "scope": 283, - "src": "4110:12:2", + "scope": 350, + "src": "5018:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7479,10 +8838,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 212, + "id": 279, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4110:7:2", + "src": "5018:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7493,11 +8852,11 @@ }, { "constant": false, - "id": 216, + "id": 283, "name": "v", "nodeType": "VariableDeclaration", - "scope": 283, - "src": "4124:9:2", + "scope": 350, + "src": "5032:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7506,19 +8865,19 @@ }, "typeName": { "baseType": { - "id": 214, + "id": 281, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4124:5:2", + "src": "5032:5:3", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 215, + "id": 282, "length": null, "nodeType": "ArrayTypeName", - "src": "4124:7:2", + "src": "5032:7:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[]" @@ -7529,11 +8888,11 @@ }, { "constant": false, - "id": 219, + "id": 286, "name": "r", "nodeType": "VariableDeclaration", - "scope": 283, - "src": "4135:11:2", + "scope": 350, + "src": "5043:11:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7542,19 +8901,19 @@ }, "typeName": { "baseType": { - "id": 217, + "id": 284, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4135:7:2", + "src": "5043:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 218, + "id": 285, "length": null, "nodeType": "ArrayTypeName", - "src": "4135:9:2", + "src": "5043:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -7565,11 +8924,11 @@ }, { "constant": false, - "id": 222, + "id": 289, "name": "s", "nodeType": "VariableDeclaration", - "scope": 283, - "src": "4148:11:2", + "scope": 350, + "src": "5056:11:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7578,19 +8937,19 @@ }, "typeName": { "baseType": { - "id": 220, + "id": 287, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4148:7:2", + "src": "5056:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 221, + "id": 288, "length": null, "nodeType": "ArrayTypeName", - "src": "4148:9:2", + "src": "5056:9:3", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -7600,26 +8959,26 @@ "visibility": "internal" } ], - "src": "4109:51:2" + "src": "5017:51:3" }, "payable": false, "returnParameters": { - "id": 224, + "id": 291, "nodeType": "ParameterList", "parameters": [], - "src": "4195:0:2" + "src": "5103:0:3" }, - "scope": 324, - "src": "4091:541:2", + "scope": 397, + "src": "4999:541:3", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 322, + "id": 395, "nodeType": "Block", - "src": "5448:126:2", + "src": "6464:176:3", "statements": [ { "expression": { @@ -7630,290 +8989,359 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "30783139", - "id": 306, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30783139", + "id": 377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6526:4:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + }, + "value": "0x19" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + } + ], + "id": 376, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6521:4:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 378, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "5480:4:2", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "6521:10:3", "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" + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" } - ], - "id": 305, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5475:4:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" }, - "typeName": "byte" - }, - "id": 307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5475:10:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, - "hexValue": "30", - "id": 309, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6538:1:3", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6533:4:3", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 381, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "5492:1:2", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "6533:7:3", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "id": 382, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2631, + "src": "6542:4:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$397", + "typeString": "contract GnosisSafePersonalEdition" + } + }, + { + "argumentTypes": null, + "id": 383, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 352, + "src": "6548:2:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 384, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 354, + "src": "6552:5:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 385, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 356, + "src": "6559:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 386, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 358, + "src": "6565:9:3", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "id": 387, + "name": "safeTxGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 360, + "src": "6576:9:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 388, + "name": "dataGas", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 362, + "src": "6587:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 389, + "name": "gasPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "6596:8:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 390, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 366, + "src": "6606:8:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 391, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 368, + "src": "6616:6:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$397", + "typeString": "contract GnosisSafePersonalEdition" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 308, + "expression": { + "argumentTypes": null, + "id": 374, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2585, + "src": "6504:3:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 375, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5487:4:2", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6504:16:3", "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } }, - "id": 310, + "id": 392, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "typeConversion", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5487:7:2", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 311, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2423, - "src": "5496:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$324", - "typeString": "contract GnosisSafePersonalEdition" - } - }, - { - "argumentTypes": null, - "id": 312, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "5502:2:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 313, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 287, - "src": "5506:5:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 314, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "5513:4:2", + "src": "6504:119:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } - }, - { - "argumentTypes": null, - "id": 315, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 291, - "src": "5519:9:2", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 316, - "name": "safeTxGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 293, - "src": "5530:9:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 317, - "name": "dataGas", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "5541:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 318, - "name": "gasPrice", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 297, - "src": "5550:8:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 319, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 299, - "src": "5560:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } } ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$324", - "typeString": "contract GnosisSafePersonalEdition" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } ], - "id": 304, + "id": 373, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2390, - "src": "5465:9:2", + "referencedDeclaration": 2592, + "src": "6481:9:3", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 320, + "id": 393, "isConstant": false, "isLValue": false, "isPure": false, @@ -7921,21 +9349,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5465:102:2", + "src": "6481:152:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 303, - "id": 321, + "functionReturnParameters": 372, + "id": 394, "nodeType": "Return", - "src": "5458:109:2" + "src": "6474:159:3" } ] }, - "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.", - "id": 323, + "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 gasToken Token address (or 0 if ETH) that is used for the payment.\n @param _nonce Transaction nonce.\n @return Transaction hash.", + "id": 396, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7943,16 +9371,16 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 300, + "id": 369, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 285, + "id": 352, "name": "to", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5187:10:2", + "scope": 396, + "src": "6177:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7960,10 +9388,10 @@ "typeString": "address" }, "typeName": { - "id": 284, + "id": 351, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5187:7:2", + "src": "6177:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7974,11 +9402,11 @@ }, { "constant": false, - "id": 287, + "id": 354, "name": "value", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5208:13:2", + "scope": 396, + "src": "6198:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7986,10 +9414,10 @@ "typeString": "uint256" }, "typeName": { - "id": 286, + "id": 353, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5208:7:2", + "src": "6198:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8000,11 +9428,11 @@ }, { "constant": false, - "id": 289, + "id": 356, "name": "data", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5232:10:2", + "scope": 396, + "src": "6222:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8012,10 +9440,10 @@ "typeString": "bytes" }, "typeName": { - "id": 288, + "id": 355, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5232:5:2", + "src": "6222:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8026,26 +9454,26 @@ }, { "constant": false, - "id": 291, + "id": 358, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5253:24:2", + "scope": 396, + "src": "6243:24:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 290, + "id": 357, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "5253:14:2", + "referencedDeclaration": 29, + "src": "6243:14:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -8054,11 +9482,11 @@ }, { "constant": false, - "id": 293, + "id": 360, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5288:17:2", + "scope": 396, + "src": "6278:17:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8066,10 +9494,10 @@ "typeString": "uint256" }, "typeName": { - "id": 292, + "id": 359, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5288:7:2", + "src": "6278:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8080,11 +9508,11 @@ }, { "constant": false, - "id": 295, + "id": 362, "name": "dataGas", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5316:15:2", + "scope": 396, + "src": "6306:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8092,10 +9520,10 @@ "typeString": "uint256" }, "typeName": { - "id": 294, + "id": 361, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5316:7:2", + "src": "6306:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8106,11 +9534,11 @@ }, { "constant": false, - "id": 297, + "id": 364, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5342:16:2", + "scope": 396, + "src": "6332:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8118,10 +9546,10 @@ "typeString": "uint256" }, "typeName": { - "id": 296, + "id": 363, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5342:7:2", + "src": "6332:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8132,11 +9560,37 @@ }, { "constant": false, - "id": 299, + "id": 366, + "name": "gasToken", + "nodeType": "VariableDeclaration", + "scope": 396, + "src": "6359:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6359:7:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 368, "name": "_nonce", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5369:14:2", + "scope": 396, + "src": "6385:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8144,10 +9598,10 @@ "typeString": "uint256" }, "typeName": { - "id": 298, + "id": 367, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5369:7:2", + "src": "6385:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8157,20 +9611,20 @@ "visibility": "internal" } ], - "src": "5177:212:2" + "src": "6167:238:3" }, "payable": false, "returnParameters": { - "id": 303, + "id": 372, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 302, + "id": 371, "name": "", "nodeType": "VariableDeclaration", - "scope": 323, - "src": "5435:7:2", + "scope": 396, + "src": "6451:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8178,10 +9632,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 301, + "id": 370, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5435:7:2", + "src": "6451:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8191,63 +9645,45 @@ "visibility": "internal" } ], - "src": "5434:9:2" + "src": "6450:9:3" }, - "scope": 324, - "src": "5150:424:2", + "scope": 397, + "src": "6140:500:3", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 325, - "src": "314:5262:2" + "scope": 398, + "src": "449:6193:3" } ], - "src": "0:5577:2" + "src": "0:6643:3" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { "4": { "events": {}, "links": {}, - "address": "0xfa2be236995d09b0ee494b9e40637d661ff40494", - "transactionHash": "0x1db063ae298dedb887690b77fc973264fd51dfbee9fdb699c430821998894113" - }, - "1525950336085": { - "events": {}, - "links": {}, - "address": "0x1f8829f66b8ac7a6893109dd298007f5dd3bcadf", - "transactionHash": "0x9a582bc25c7705ede926f13bef0ba8fa76176d0ec80dc0871e1b28d87382f545" - }, - "1526283540628": { - "events": {}, - "links": {}, - "address": "0xad5d0371132b0959508b44c6221e6bc4de8df987", - "transactionHash": "0x9a582bc25c7705ede926f13bef0ba8fa76176d0ec80dc0871e1b28d87382f545" - }, - "1526478212260": { - "events": {}, - "links": {}, - "address": "0x6cd3878c8fce094d881e37ed48a6eb90bcea5ef7", - "transactionHash": "0xd404a4c4c3ff550c031b238e6df539cbbd9d5727574d8446d0c40f2abf4638b1" - }, - "1526973574996": { - "events": {}, - "links": {}, - "address": "0x38a0e040615367af9cd0626ef96441785f82f5c8", - "transactionHash": "0xd404a4c4c3ff550c031b238e6df539cbbd9d5727574d8446d0c40f2abf4638b1" + "address": "0x7516b591cfd6ba7c22caa25c011d7b815c95fc5d", + "transactionHash": "0x33ad07a6c877666e75a6297bf0c86ba5c1e4ef02e72027337a88a649bc38309b" }, "1527316019334": { "events": {}, "links": {}, - "address": "0x38c3ac4274e76c52a9b9f7f00ecf062750b1b4dc", - "transactionHash": "0xd404a4c4c3ff550c031b238e6df539cbbd9d5727574d8446d0c40f2abf4638b1" + "address": "0x39aa0fab18dc485e96591b3317ea593feb990da0", + "transactionHash": "0x66ae6f871105a2bab973870a91d508ce3c26f29662aa7a139faf53975c3ba7b7" + }, + "1527420696956": { + "events": {}, + "links": {}, + "address": "0x2f6ebb40061dab74d569509841ab8397f77f9168", + "transactionHash": "0x0cb0ab0185325fd4e5ef5dfbf473d6cbb278fa82fcd1a0c0ecc0d1a2b8c0b5af" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-26T06:28:28.339Z" + "updatedAt": "2018-05-27T11:31:46.238Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/GnosisSafeStateChannelEdition.json b/safe-contracts/build/contracts/GnosisSafeStateChannelEdition.json deleted file mode 100644 index 52a0b462..00000000 --- a/safe-contracts/build/contracts/GnosisSafeStateChannelEdition.json +++ /dev/null @@ -1,5469 +0,0 @@ -{ - "contractName": "GnosisSafeStateChannelEdition", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "owners", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint8" - } - ], - "name": "addOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "module", - "type": "address" - } - ], - "name": "addModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "threshold", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "isModule", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "oldOwnerIndex", - "type": "uint256" - }, - { - "name": "oldOwner", - "type": "address" - }, - { - "name": "newOwner", - "type": "address" - } - ], - "name": "replaceOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "moduleIndex", - "type": "uint256" - }, - { - "name": "module", - "type": "address" - } - ], - "name": "removeModule", - "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, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "modules", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "ownerIndex", - "type": "uint256" - }, - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint8" - } - ], - "name": "removeOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_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": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - } - ], - "name": "executeModule", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getModules", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_threshold", - "type": "uint8" - } - ], - "name": "changeThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "name": "isExecuted", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "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": "nonce", - "type": "uint256" - }, - { - "name": "v", - "type": "uint8[]" - }, - { - "name": "r", - "type": "bytes32[]" - }, - { - "name": "s", - "type": "bytes32[]" - } - ], - "name": "executeTransaction", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - }, - { - "name": "operation", - "type": "uint8" - }, - { - "name": "nonce", - "type": "uint256" - } - ], - "name": "getTransactionHash", - "outputs": [ - { - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50612177806100206000396000f30060806040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c271461011f5780630e5229b01461018c5780631ed86f19146101dc5780632b5000411461021f5780632f54bf6e146102e557806342cde4e81461034057806342f6e3891461037157806354e99c6e146103cc578063782e46be146104395780637c6401d3146105ac5780637de7edef146105f957806381b2248a1461063c578063842b954e146106a9578063a04222e114610703578063a0e67e2b146107dc578063a3f4df7e14610848578063b021640a146108d8578063b2494df314610990578063b7f3358d146109fc578063e52cb36a14610a2c578063ffa1ad7414610a75575b005b34801561012b57600080fd5b5061014a60048036038101908080359060200190929190505050610b05565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561019857600080fd5b506101da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610b43565b005b3480156101e857600080fd5b5061021d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ce6565b005b34801561022b57600080fd5b506102c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610e60565b60405180826000191660001916815260200191505060405180910390f35b3480156102f157600080fd5b50610326600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061107c565b604051808215151515815260200191505060405180910390f35b34801561034c57600080fd5b506103556110d2565b604051808260ff1660ff16815260200191505060405180910390f35b34801561037d57600080fd5b506103b2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e9565b604051808215151515815260200191505060405180910390f35b3480156103d857600080fd5b5061043760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611109565b005b34801561044557600080fd5b506105aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611342565b005b3480156105b857600080fd5b506105f760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113eb565b005b34801561060557600080fd5b5061063a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115a1565b005b34801561064857600080fd5b5061066760048036038101908080359060200190929190505050611644565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b557600080fd5b5061070160048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611682565b005b34801561070f57600080fd5b506107da60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061187d565b005b3480156107e857600080fd5b506107f1611897565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610834578082015181840152602081019050610819565b505050509050019250505060405180910390f35b34801561085457600080fd5b5061085d611925565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561089d578082015181840152602081019050610882565b50505050905090810190601f1680156108ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108e457600080fd5b50610976600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611985565b604051808215151515815260200191505060405180910390f35b34801561099c57600080fd5b506109a56119f6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156109e85780820151818401526020810190506109cd565b505050509050019250505060405180910390f35b348015610a0857600080fd5b50610a2a600480360381019080803560ff169060200190929190505050611a84565b005b348015610a3857600080fd5b50610a5b6004803603810190808035600019169060200190929190505050611b06565b604051808215151515815260200191505060405180910390f35b348015610a8157600080fd5b50610a8a611b26565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610aca578082015181840152602081019050610aaf565b50505050905090810190601f168015610af75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600381815481101515610b1457fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b7d57600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614151515610ba357600080fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610bfc57600080fd5b60038290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508060ff16600460009054906101000a900460ff1660ff16141515610ce257610ce181611a84565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d2057600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610d4657600080fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610d9f57600080fd5b60018190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b6020831015156110015780518252602082019150602081019050602083039250610fdc565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561102f57fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040518091039020905095945050505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600460009054906101000a900460ff16905090565b60026020528060005260406000206000915054906101000a900460ff1681565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561114357600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561116957600080fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156111c257600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166003848154811015156111e857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561123557600080fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806003848154811015156112f557fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60006113518989898989610e60565b905060066000826000191660001916815260200190815260200160002060009054906101000a900460ff1615151561138857600080fd5b61139481858585611b5f565b600160066000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055506113d5898989895a611cf9565b15156113e057600080fd5b505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561142557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660018381548110151561144b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561149857600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018080805490500381548110151561150557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660018381548110151561153f57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600180548091906001900361159c9190612001565b505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115db57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561160157600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60018181548110151561165357fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116bc57600080fd5b8060ff16600160038054905003101515156116d657600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166003848154811015156116fc57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561174957600080fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060036001600380549050038154811015156117b857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003848154811015156117f257fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600380548091906001900361184f919061202d565b508060ff16600460009054906101000a900460ff1660ff161415156118785761187781611a84565b5b505050565b6118878484611df6565b6118918282611f84565b50505050565b6060600380548060200260200160405190810160405280929190818152602001828054801561191b57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116118d1575b5050505050905090565b606060405190810160405280602181526020017f476e6f7369732053616665205374617465204368616e6e656c2045646974696f81526020017f6e0000000000000000000000000000000000000000000000000000000000000081525081565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156119df57600080fd5b6119ec858585855a611cf9565b9050949350505050565b60606001805480602002602001604051908101604052809291908181526020018280548015611a7a57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611a30575b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611abe57600080fd5b6003805490508160ff1611151515611ad557600080fd5b60018160ff1610151515611ae857600080fd5b80600460006101000a81548160ff021916908360ff16021790555050565b60066020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000809250600090505b600460009054906101000a900460ff1660ff16811015611cf0576001878783815181101515611b9757fe5b906020019060200201518784815181101515611baf57fe5b906020019060200201518785815181101515611bc757fe5b90602001906020020151604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015611c42573d6000803e3d6000fd5b505050602060405103519150600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611ca657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16111515611ce057600080fd5b8192508080600101915050611b6c565b50505050505050565b60008060006002811115611d0957fe5b846002811115611d1557fe5b1415611d2e57611d2787878786611fbf565b9150611dec565b60016002811115611d3b57fe5b846002811115611d4757fe5b1415611d5f57611d58878685611fd8565b9150611deb565b611d6885611fef565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000600460009054906101000a900460ff1660ff16141515611e1a57600080fd5b83518360ff1611151515611e2d57600080fd5b60018360ff1610151515611e4057600080fd5b600091505b8351821015611f4c578382815181101515611e5c57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515611e8e57600080fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611ee757600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050611e45565b8360039080519060200190611f62929190612059565b5082600460006101000a81548160ff021916908360ff16021790555050505050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515611fbb57611faf82825a611fd8565b1515611fba57600080fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b8154818355818111156120285781836000526020600020918201910161202791906120e3565b5b505050565b8154818355818111156120545781836000526020600020918201910161205391906120e3565b5b505050565b8280548282559060005260206000209081019282156120d2579160200282015b828111156120d15782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190612079565b5b5090506120df9190612108565b5090565b61210591905b808211156121015760008160009055506001016120e9565b5090565b90565b61214891905b8082111561214457600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060010161210e565b5090565b905600a165627a7a723058206b355f2ebea16bb70cf5109e223d45edf3885f89d9bac77bbdb410e1e0884c8e0029", - "deployedBytecode": "0x60806040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c271461011f5780630e5229b01461018c5780631ed86f19146101dc5780632b5000411461021f5780632f54bf6e146102e557806342cde4e81461034057806342f6e3891461037157806354e99c6e146103cc578063782e46be146104395780637c6401d3146105ac5780637de7edef146105f957806381b2248a1461063c578063842b954e146106a9578063a04222e114610703578063a0e67e2b146107dc578063a3f4df7e14610848578063b021640a146108d8578063b2494df314610990578063b7f3358d146109fc578063e52cb36a14610a2c578063ffa1ad7414610a75575b005b34801561012b57600080fd5b5061014a60048036038101908080359060200190929190505050610b05565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561019857600080fd5b506101da600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610b43565b005b3480156101e857600080fd5b5061021d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610ce6565b005b34801561022b57600080fd5b506102c7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610e60565b60405180826000191660001916815260200191505060405180910390f35b3480156102f157600080fd5b50610326600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061107c565b604051808215151515815260200191505060405180910390f35b34801561034c57600080fd5b506103556110d2565b604051808260ff1660ff16815260200191505060405180910390f35b34801561037d57600080fd5b506103b2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110e9565b604051808215151515815260200191505060405180910390f35b3480156103d857600080fd5b5061043760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611109565b005b34801561044557600080fd5b506105aa600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050611342565b005b3480156105b857600080fd5b506105f760048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113eb565b005b34801561060557600080fd5b5061063a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115a1565b005b34801561064857600080fd5b5061066760048036038101908080359060200190929190505050611644565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b557600080fd5b5061070160048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611682565b005b34801561070f57600080fd5b506107da60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061187d565b005b3480156107e857600080fd5b506107f1611897565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610834578082015181840152602081019050610819565b505050509050019250505060405180910390f35b34801561085457600080fd5b5061085d611925565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561089d578082015181840152602081019050610882565b50505050905090810190601f1680156108ca5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108e457600080fd5b50610976600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050611985565b604051808215151515815260200191505060405180910390f35b34801561099c57600080fd5b506109a56119f6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156109e85780820151818401526020810190506109cd565b505050509050019250505060405180910390f35b348015610a0857600080fd5b50610a2a600480360381019080803560ff169060200190929190505050611a84565b005b348015610a3857600080fd5b50610a5b6004803603810190808035600019169060200190929190505050611b06565b604051808215151515815260200191505060405180910390f35b348015610a8157600080fd5b50610a8a611b26565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610aca578082015181840152602081019050610aaf565b50505050905090810190601f168015610af75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600381815481101515610b1457fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b7d57600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614151515610ba357600080fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610bfc57600080fd5b60038290806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508060ff16600460009054906101000a900460ff1660ff16141515610ce257610ce181611a84565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d2057600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610d4657600080fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610d9f57600080fd5b60018190806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b6020831015156110015780518252602082019150602081019050602083039250610fdc565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561102f57fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040518091039020905095945050505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600460009054906101000a900460ff16905090565b60026020528060005260406000206000915054906101000a900460ff1681565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561114357600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561116957600080fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156111c257600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166003848154811015156111e857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561123557600080fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806003848154811015156112f557fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60006113518989898989610e60565b905060066000826000191660001916815260200190815260200160002060009054906101000a900460ff1615151561138857600080fd5b61139481858585611b5f565b600160066000836000191660001916815260200190815260200160002060006101000a81548160ff0219169083151502179055506113d5898989895a611cf9565b15156113e057600080fd5b505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561142557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff1660018381548110151561144b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561149857600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060018080805490500381548110151561150557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660018381548110151561153f57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600180548091906001900361159c9190612001565b505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115db57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561160157600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60018181548110151561165357fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116bc57600080fd5b8060ff16600160038054905003101515156116d657600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166003848154811015156116fc57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561174957600080fd5b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060036001600380549050038154811015156117b857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166003848154811015156117f257fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600380548091906001900361184f919061202d565b508060ff16600460009054906101000a900460ff1660ff161415156118785761187781611a84565b5b505050565b6118878484611df6565b6118918282611f84565b50505050565b6060600380548060200260200160405190810160405280929190818152602001828054801561191b57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116118d1575b5050505050905090565b606060405190810160405280602181526020017f476e6f7369732053616665205374617465204368616e6e656c2045646974696f81526020017f6e0000000000000000000000000000000000000000000000000000000000000081525081565b6000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156119df57600080fd5b6119ec858585855a611cf9565b9050949350505050565b60606001805480602002602001604051908101604052809291908181526020018280548015611a7a57602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611a30575b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611abe57600080fd5b6003805490508160ff1611151515611ad557600080fd5b60018160ff1610151515611ae857600080fd5b80600460006101000a81548160ff021916908360ff16021790555050565b60066020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000809250600090505b600460009054906101000a900460ff1660ff16811015611cf0576001878783815181101515611b9757fe5b906020019060200201518784815181101515611baf57fe5b906020019060200201518785815181101515611bc757fe5b90602001906020020151604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015611c42573d6000803e3d6000fd5b505050602060405103519150600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611ca657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16111515611ce057600080fd5b8192508080600101915050611b6c565b50505050505050565b60008060006002811115611d0957fe5b846002811115611d1557fe5b1415611d2e57611d2787878786611fbf565b9150611dec565b60016002811115611d3b57fe5b846002811115611d4757fe5b1415611d5f57611d58878685611fd8565b9150611deb565b611d6885611fef565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000600460009054906101000a900460ff1660ff16141515611e1a57600080fd5b83518360ff1611151515611e2d57600080fd5b60018360ff1610151515611e4057600080fd5b600091505b8351821015611f4c578382815181101515611e5c57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515611e8e57600080fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611ee757600080fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050611e45565b8360039080519060200190611f62929190612059565b5082600460006101000a81548160ff021916908360ff16021790555050505050565b60008273ffffffffffffffffffffffffffffffffffffffff16141515611fbb57611faf82825a611fd8565b1515611fba57600080fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b8154818355818111156120285781836000526020600020918201910161202791906120e3565b5b505050565b8154818355818111156120545781836000526020600020918201910161205391906120e3565b5b505050565b8280548282559060005260206000209081019282156120d2579160200282015b828111156120d15782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190612079565b5b5090506120df9190612108565b5090565b61210591905b808211156121015760008160009055506001016120e9565b5090565b90565b61214891905b8082111561214457600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060010161210e565b5090565b905600a165627a7a723058206b355f2ebea16bb70cf5109e223d45edf3885f89d9bac77bbdb410e1e0884c8e0029", - "sourceMap": "281:2670:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;281:2670:4;;;;;;;", - "deployedSourceMap": "281:2670:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;287:23:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:23:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1737:431;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1737:431:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1166:300:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1166:300:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;2638:311:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2638:311:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4552:125:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4552:125:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4436:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4436:110:10;;;;;;;;;;;;;;;;;;;;;;;;;;;599:41:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;599:41:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3419:501:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3419:501:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1205:590:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1205:590:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1722:336:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1722:336:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:208:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;500:23:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;500:23:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2499:599:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2499:599:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;693:301:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;693:301:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4759:111:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4759:111:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4759:111:10;;;;;;;;;;;;;;;;;353:65:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:65:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;353:65:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2394:361:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2394:361:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4279:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4279:112:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4279:112:9;;;;;;;;;;;;;;;;;4109:321:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4109:321:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;562:43:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;562:43:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;424:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;424:40:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;424:40:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;287:23:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1737:431::-;244:4:14;222:27;;:10;:27;;;214:36;;;;;;;;1894:1:10;1885:5;:10;;;;1877:19;;;;;;;;1955:7;:14;1963:5;1955:14;;;;;;;;;;;;;;;;;;;;;;;;;1954:15;1946:24;;;;;;;;1980:6;1992:5;1980:18;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1980:18:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2025:4;2008:7;:14;2016:5;2008:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;2110:10;2097:23;;:9;;;;;;;;;;;:23;;;;2093:68;;;2134:27;2150:10;2134:15;:27::i;:::-;2093:68;1737:431;;:::o;1166:300:9:-;244:4:14;222:27;;:10;:27;;;214:36;;;;;;;;1317:1:9;1306:6;1298:20;;;;1290:29;;;;;;;;1379:8;:16;1388:6;1379:16;;;;;;;;;;;;;;;;;;;;;;;;;1378:17;1370:26;;;;;;;;1406:7;1419:6;1406:20;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;1406:20:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1455:4;1436:8;:16;1445:6;1436:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;1166:300;:::o;2638:311:4:-;2841:7;2886:4;2881:10;;2898:1;2893:7;;2902:4;2908:2;2912:5;2919:4;2925:9;2936:5;2871:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2871:71:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2864:78;;2638:311;;;;;;;:::o;4552:125:10:-;4629:4;4656:7;:14;4664:5;4656:14;;;;;;;;;;;;;;;;;;;;;;;;;4649:21;;4552:125;;;:::o;4436:110::-;4502:5;4530:9;;;;;;;;;;;4523:16;;4436:110;:::o;599:41:9:-;;;;;;;;;;;;;;;;;;;;;;:::o;3419:501:10:-;244:4:14;222:27;;:10;:27;;;214:36;;;;;;;;3609:1:10;3597:8;:13;;;;3589:22;;;;;;;;3670:7;:17;3678:8;3670:17;;;;;;;;;;;;;;;;;;;;;;;;;3669:18;3661:27;;;;;;;;3793:8;3768:33;;:6;3775:13;3768:21;;;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;3760:42;;;;;;;;3832:5;3812:7;:17;3820:8;3812:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;3867:4;3847:7;:17;3855:8;3847:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;3905:8;3881:6;3888:13;3881:21;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;3419:501;;;:::o;1205:590:4:-;1455:23;1481:53;1500:2;1504:5;1511:4;1517:9;1528:5;1481:18;:53::i;:::-;1455:79;;1553:10;:27;1564:15;1553:27;;;;;;;;;;;;;;;;;;;;;;;;;;;1552:28;1544:37;;;;;;;;1591:35;1601:15;1618:1;1621;1624;1591:9;:35::i;:::-;1719:4;1689:10;:27;1700:15;1689:27;;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1741:46;1749:2;1753:5;1760:4;1766:9;1777;1741:7;:46::i;:::-;1733:55;;;;;;;;1205:590;;;;;;;;;:::o;1722:336:9:-;244:4:14;222:27;;:10;:27;;;214:36;;;;;;;;1924:6:9;1900:30;;:7;1908:11;1900:20;;;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;1892:39;;;;;;;;1960:5;1941:8;:16;1950:6;1941:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;1998:7;2023:1;2006:7;:14;;;;:18;1998:27;;;;;;;;;;;;;;;;;;;;;;;;;;;1975:7;1983:11;1975:20;;;;;;;;;;;;;;;;;;:50;;;;;;;;;;;;;;;;;;2035:7;:16;;;;;;;;;;;;:::i;:::-;;1722:336;;:::o;626:208:6:-;244:4:14;222:27;;:10;:27;;;214:36;;;;;;;;791:1:6;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o;500:23:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2499:599:10:-;244:4:14;222:27;;:10;:27;;;214:36;;;;;;;;2727:10:10;2706:31;;2722:1;2706:6;:13;;;;:17;:31;;2698:40;;;;;;;;2840:5;2818:27;;:6;2825:10;2818:18;;;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;2810:36;;;;;;;;2873:5;2856:7;:14;2864:5;2856:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;2909:6;2932:1;2916:6;:13;;;;:17;2909:25;;;;;;;;;;;;;;;;;;;;;;;;;;;2888:6;2895:10;2888:18;;;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;2944:6;:15;;;;;;;;;;;;:::i;:::-;;3040:10;3027:23;;:9;;;;;;;;;;;:23;;;;3023:68;;;3064:27;3080:10;3064:15;:27::i;:::-;3023:68;2499:599;;;:::o;693:301:2:-;798:32;810:7;819:10;798:11;:32::i;:::-;965:22;978:2;982:4;965:12;:22::i;:::-;693:301;;;;:::o;4759:111:10:-;4825:9;4857:6;4850:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4759:111;:::o;353:65:4:-;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2394:361:9:-;2514:12;2599:8;:20;2608:10;2599:20;;;;;;;;;;;;;;;;;;;;;;;;;2591:29;;;;;;;;2702:46;2710:2;2714:5;2721:4;2727:9;2738;2702:7;:46::i;:::-;2692:56;;2394:361;;;;;;:::o;4279:112::-;4346:8;4377:7;4370:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4279:112;:::o;4109:321:10:-;244:4:14;222:27;;:10;:27;;;214:36;;;;;;;;4291:6:10;:13;;;;4277:10;:27;;;;4269:36;;;;;;;;4389:1;4375:10;:15;;;;4367:24;;;;;;;;4413:10;4401:9;;:22;;;;;;;;;;;;;;;;;;4109:321;:::o;562:43:4:-;;;;;;;;;;;;;;;;;;;;;;:::o;424:40::-;;;;;;;;;;;;;;;;;;;;:::o;1801:559::-;1978:17;2018:20;2048:9;2006:1;1978:30;;2118:1;2114:5;;2109:245;2125:9;;;;;;;;;;;2121:13;;:1;:13;2109:245;;;2170:44;2180:15;2197:1;2199;2197:4;;;;;;;;;;;;;;;;;;2203:1;2205;2203:4;;;;;;;;;;;;;;;;;;2209:1;2211;2209:4;;;;;;;;;;;;;;;;;;2170:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2170:44:4;;;;;;;;2155:59;;2236:7;:21;2244:12;2236:21;;;;;;;;;;;;;;;;;;;;;;;;;2228:30;;;;;;;;2295:9;2280:24;;:12;:24;;;2272:33;;;;;;;;2331:12;2319:24;;2136:3;;;;;;;2109:245;;;1801:559;;;;;;;:::o;2761:548:9:-;2892:12;3163:19;2937;2924:32;;;;;;;;:9;:32;;;;;;;;;2920:383;;;2980:35;2992:2;2996:5;3003:4;3009:5;2980:11;:35::i;:::-;2970:45;;2920:383;;;3047:27;3034:40;;;;;;;;:9;:40;;;;;;;;;3030:273;;;3098:36;3118:2;3122:4;3128:5;3098:19;:36::i;:::-;3088:46;;3030:273;;;3185:19;3199:4;3185:13;:19::i;:::-;3163:41;;3243:1;3228:11;:16;;;;3218:26;;3263:29;3280:11;3263:29;;;;;;;;;;;;;;;;;;;;;;3030:273;2920:383;2761:548;;;;;;;;:::o;651:846:10:-;1147:9;1246:13;885:1;872:9;;;;;;;;;;;:14;;;864:23;;;;;;;;994:7;:14;980:10;:28;;;;972:37;;;;;;;;1093:1;1079:10;:15;;;;1071:24;;;;;;;;1159:1;1147:13;;1142:291;1166:7;:14;1162:1;:18;1142:291;;;1262:7;1270:1;1262:10;;;;;;;;;;;;;;;;;;1246:26;;1303:1;1294:5;:10;;;;1286:19;;;;;;;;1372:7;:14;1380:5;1372:14;;;;;;;;;;;;;;;;;;;;;;;;;1371:15;1363:24;;;;;;;;1418:4;1401:7;:14;1409:5;1401:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;1182:3;;;;;;;1142:291;;;1451:7;1442:6;:16;;;;;;;;;;;;:::i;:::-;;1480:10;1468:9;;:22;;;;;;;;;;;;;;;;;;651:846;;;;:::o;769:230:9:-;856:1;850:2;:7;;;;846:146;;;951:40;971:2;975:4;981:9;951:19;:40::i;:::-;943:49;;;;;;;;846:146;769:230;;:::o;3315:309::-;3424:12;3606:1;3603;3596:4;3590:11;3583:4;3577;3573:15;3566:5;3562:2;3555:5;3550:58;3539:69;;3525:93;;;;;;:::o;3630:303::-;3732:12;3915:1;3912;3905:4;3899:11;3892:4;3886;3882:15;3878:2;3871:5;3858:59;3847:70;;3833:94;;;;;:::o;3939:261::-;4008:19;4178:4;4172:11;4165:4;4159;4155:15;4152:1;4145:39;4130:54;;4116:78;;;:::o;281:2670:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity 0.4.23;\nimport \"./GnosisSafe.sol\";\nimport \"./MasterCopy.sol\";\n\n\n/// @title Gnosis Safe State Channel Edition - A multisignature wallet with support for confirmations.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract GnosisSafeStateChannelEdition is MasterCopy, GnosisSafe {\n\n string public constant NAME = \"Gnosis Safe State Channel Edition\";\n string public constant VERSION = \"0.0.1\";\n\n // isExecuted mapping allows to check if a transaction (by hash) was already executed.\n mapping (bytes32 => bool) public isExecuted;\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 nonce Nonce used for this Safe transaction.\n /// @param v Array of signature V values sorted by owner addresses.\n /// @param r Array of signature R values sorted by owner addresses.\n /// @param s Array of signature S values sorted by owner addresses.\n function executeTransaction(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce,\n uint8[] v, \n bytes32[] r, \n bytes32[] s\n )\n public\n {\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n require(!isExecuted[transactionHash]);\n checkHash(transactionHash, v, r, s);\n // Mark as executed and execute transaction.\n isExecuted[transactionHash] = true;\n require(execute(to, value, data, operation, gasleft()));\n }\n\n function checkHash(bytes32 transactionHash, uint8[] v, bytes32[] r, bytes32[] s)\n internal\n view\n {\n // There cannot be an owner with address 0.\n address lastOwner = address(0);\n address currentOwner;\n uint256 i;\n // Validate threshold is reached.\n for (i = 0; i < threshold; i++) {\n currentOwner = ecrecover(transactionHash, v[i], r[i], s[i]);\n require(isOwner[currentOwner]);\n require(currentOwner > lastOwner);\n lastOwner = currentOwner;\n }\n }\n\n /// @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 nonce Transaction nonce.\n /// @return Transaction hash.\n function getTransactionHash(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n view\n returns (bytes32)\n {\n return keccak256(byte(0x19), byte(0), this, to, value, data, operation, nonce);\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafeStateChannelEdition.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafeStateChannelEdition.sol", - "exportedSymbols": { - "GnosisSafeStateChannelEdition": [ - 530 - ] - }, - "id": 531, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 348, - "literals": [ - "solidity", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:23:4" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", - "file": "./GnosisSafe.sol", - "id": 349, - "nodeType": "ImportDirective", - "scope": 531, - "sourceUnit": 64, - "src": "24:26:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", - "file": "./MasterCopy.sol", - "id": 350, - "nodeType": "ImportDirective", - "scope": 531, - "sourceUnit": 780, - "src": "51:26:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 351, - "name": "MasterCopy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 779, - "src": "323:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$779", - "typeString": "contract MasterCopy" - } - }, - "id": 352, - "nodeType": "InheritanceSpecifier", - "src": "323:10:4" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 353, - "name": "GnosisSafe", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 63, - "src": "335:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$63", - "typeString": "contract GnosisSafe" - } - }, - "id": 354, - "nodeType": "InheritanceSpecifier", - "src": "335:10:4" - } - ], - "contractDependencies": [ - 63, - 779, - 1142, - 1438, - 1559 - ], - "contractKind": "contract", - "documentation": "@title Gnosis Safe State Channel Edition - A multisignature wallet with support for confirmations.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 530, - "linearizedBaseContracts": [ - 530, - 63, - 1438, - 1142, - 779, - 1559 - ], - "name": "GnosisSafeStateChannelEdition", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 357, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 530, - "src": "353:65:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 355, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "353:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "476e6f7369732053616665205374617465204368616e6e656c2045646974696f6e", - "id": 356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "383:35:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8ed77695330a1e702d7599137bd776e333a5b5bdc777b481e480866a9eb5edc4", - "typeString": "literal_string \"Gnosis Safe State Channel Edition\"" - }, - "value": "Gnosis Safe State Channel Edition" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 360, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 530, - "src": "424:40:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 358, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "424:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e31", - "id": 359, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "457:7:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" - }, - "value": "0.0.1" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 364, - "name": "isExecuted", - "nodeType": "VariableDeclaration", - "scope": 530, - "src": "562:43:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 363, - "keyType": { - "id": 361, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "571:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "562:25:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 362, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "582:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 427, - "nodeType": "Block", - "src": "1445:350:4", - "statements": [ - { - "assignments": [ - 387 - ], - "declarations": [ - { - "constant": false, - "id": 387, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1455:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 386, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1455:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 395, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 389, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "1500:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 390, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "1504:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 391, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 370, - "src": "1511:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 392, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "1517:9:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 393, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 374, - "src": "1528:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 388, - "name": "getTransactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "1481:18:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" - } - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1481:53:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1455:79:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1552:28:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 397, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 364, - "src": "1553:10:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 399, - "indexExpression": { - "argumentTypes": null, - "id": 398, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "1564:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1553:27:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 396, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2468, - 2469 - ], - "referencedDeclaration": 2468, - "src": "1544:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1544:37:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 402, - "nodeType": "ExpressionStatement", - "src": "1544:37:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 404, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "1601:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 405, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 377, - "src": "1618:1:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", - "typeString": "uint8[] memory" - } - }, - { - "argumentTypes": null, - "id": 406, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 380, - "src": "1621:1:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - { - "argumentTypes": null, - "id": 407, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "1624:1:4", - "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" - } - ], - "id": 403, - "name": "checkHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 498, - "src": "1591:9:4", - "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" - } - }, - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1591:35:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 409, - "nodeType": "ExpressionStatement", - "src": "1591:35:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 410, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 364, - "src": "1689:10:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 412, - "indexExpression": { - "argumentTypes": null, - "id": 411, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "1700:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1689:27:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1719:4:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1689:34:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 415, - "nodeType": "ExpressionStatement", - "src": "1689:34:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 418, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "1749:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 419, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "1753:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 420, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 370, - "src": "1760:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 421, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "1766:9:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 422, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2458, - "src": "1777:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1777:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 417, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1095, - "src": "1741:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1741:46:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 416, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2468, - 2469 - ], - "referencedDeclaration": 2468, - "src": "1733:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1733:55:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 426, - "nodeType": "ExpressionStatement", - "src": "1733:55:4" - } - ] - }, - "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 nonce Nonce used for this Safe transaction.\n @param v Array of signature V values sorted by owner addresses.\n @param r Array of signature R values sorted by owner addresses.\n @param s Array of signature S values sorted by owner addresses.", - "id": 428, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeTransaction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 384, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 366, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1242:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 365, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1242:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 368, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1263:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 367, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1263:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 370, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1287:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 369, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1287:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 372, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1308:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 371, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "1308:14:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 374, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1343:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 373, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1343:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 377, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1366:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", - "typeString": "uint8[]" - }, - "typeName": { - "baseType": { - "id": 375, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1366:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 376, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1366:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", - "typeString": "uint8[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 380, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1386:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 378, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1386:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 379, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1386:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 383, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1408:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 381, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1408:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 382, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1408:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1232:193:4" - }, - "payable": false, - "returnParameters": { - "id": 385, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:0:4" - }, - "scope": 530, - "src": "1205:590:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 497, - "nodeType": "Block", - "src": "1916:444:4", - "statements": [ - { - "assignments": [ - 443 - ], - "declarations": [ - { - "constant": false, - "id": 443, - "name": "lastOwner", - "nodeType": "VariableDeclaration", - "scope": 498, - "src": "1978:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 442, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1978:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 447, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2006:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1998:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1998:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1978:30:4" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 449, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 498, - "src": "2018:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 448, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2018:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 450, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2018:20:4" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 452, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 498, - "src": "2048:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 451, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2048:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 453, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2048:9:4" - }, - { - "body": { - "id": 495, - "nodeType": "Block", - "src": "2141:213:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 464, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "2155:12:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 466, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "2180:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 467, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 433, - "src": "2197:1:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", - "typeString": "uint8[] memory" - } - }, - "id": 469, - "indexExpression": { - "argumentTypes": null, - "id": 468, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "2199:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2197:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 470, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 436, - "src": "2203:1:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 472, - "indexExpression": { - "argumentTypes": null, - "id": 471, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "2205:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2203:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 473, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 439, - "src": "2209:1:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 475, - "indexExpression": { - "argumentTypes": null, - "id": 474, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "2211:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2209:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 465, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2457, - "src": "2170:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2170:44:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2155:59:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 478, - "nodeType": "ExpressionStatement", - "src": "2155:59:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 480, - "name": "isOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1156 - ], - "referencedDeclaration": 1156, - "src": "2236:7:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 482, - "indexExpression": { - "argumentTypes": null, - "id": 481, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "2244:12:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2236:21:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 479, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2468, - 2469 - ], - "referencedDeclaration": 2468, - "src": "2228:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2228:30:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 484, - "nodeType": "ExpressionStatement", - "src": "2228:30:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 486, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "2280:12:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 487, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 443, - "src": "2295:9:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2280:24:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 485, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2468, - 2469 - ], - "referencedDeclaration": 2468, - "src": "2272:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2272:33:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 490, - "nodeType": "ExpressionStatement", - "src": "2272:33:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 491, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 443, - "src": "2319:9:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 492, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "2331:12:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2319:24:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 494, - "nodeType": "ExpressionStatement", - "src": "2319:24:4" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 458, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "2121:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 459, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1152 - ], - "referencedDeclaration": 1152, - "src": "2125:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "2121:13:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 496, - "initializationExpression": { - "expression": { - "argumentTypes": null, - "id": 456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 454, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "2114:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 455, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2118:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2114:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 457, - "nodeType": "ExpressionStatement", - "src": "2114:5:4" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2136:3:4", - "subExpression": { - "argumentTypes": null, - "id": 461, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "2136:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 463, - "nodeType": "ExpressionStatement", - "src": "2136:3:4" - }, - "nodeType": "ForStatement", - "src": "2109:245:4" - } - ] - }, - "documentation": null, - "id": 498, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "checkHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 440, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 430, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 498, - "src": "1820:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 429, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1820:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 433, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 498, - "src": "1845:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", - "typeString": "uint8[]" - }, - "typeName": { - "baseType": { - "id": 431, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1845:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 432, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1845:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", - "typeString": "uint8[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 436, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 498, - "src": "1856:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 434, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1856:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 435, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1856:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 439, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 498, - "src": "1869:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 437, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1869:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 438, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1869:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1819:62:4" - }, - "payable": false, - "returnParameters": { - "id": 441, - "nodeType": "ParameterList", - "parameters": [], - "src": "1916:0:4" - }, - "scope": 530, - "src": "1801:559:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 528, - "nodeType": "Block", - "src": "2854:95:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 515, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2886:4:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 514, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2881:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2881:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2898:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2893:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 519, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2893:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 520, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2498, - "src": "2902:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafeStateChannelEdition_$530", - "typeString": "contract GnosisSafeStateChannelEdition" - } - }, - { - "argumentTypes": null, - "id": 521, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 500, - "src": "2908:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 502, - "src": "2912:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 504, - "src": "2919:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 524, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 506, - "src": "2925:9:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 525, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 508, - "src": "2936:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_GnosisSafeStateChannelEdition_$530", - "typeString": "contract GnosisSafeStateChannelEdition" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 513, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2459, - "src": "2871:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2871:71:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 512, - "id": 527, - "nodeType": "Return", - "src": "2864:78:4" - } - ] - }, - "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 nonce Transaction nonce.\n @return Transaction hash.", - "id": 529, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 509, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 500, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "2675:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 499, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2675:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 502, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "2696:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 501, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2696:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 504, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "2720:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 503, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2720:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 506, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "2741:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 505, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "2741:14:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 508, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "2776:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 507, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2776:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2665:130:4" - }, - "payable": false, - "returnParameters": { - "id": 512, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 511, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "2841:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 510, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2841:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2840:9:4" - }, - "scope": 530, - "src": "2638:311:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 531, - "src": "281:2670:4" - } - ], - "src": "0:2952:4" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafeStateChannelEdition.sol", - "exportedSymbols": { - "GnosisSafeStateChannelEdition": [ - 530 - ] - }, - "id": 531, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 348, - "literals": [ - "solidity", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:23:4" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", - "file": "./GnosisSafe.sol", - "id": 349, - "nodeType": "ImportDirective", - "scope": 531, - "sourceUnit": 64, - "src": "24:26:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", - "file": "./MasterCopy.sol", - "id": 350, - "nodeType": "ImportDirective", - "scope": 531, - "sourceUnit": 780, - "src": "51:26:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 351, - "name": "MasterCopy", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 779, - "src": "323:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$779", - "typeString": "contract MasterCopy" - } - }, - "id": 352, - "nodeType": "InheritanceSpecifier", - "src": "323:10:4" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 353, - "name": "GnosisSafe", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 63, - "src": "335:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$63", - "typeString": "contract GnosisSafe" - } - }, - "id": 354, - "nodeType": "InheritanceSpecifier", - "src": "335:10:4" - } - ], - "contractDependencies": [ - 63, - 779, - 1142, - 1438, - 1559 - ], - "contractKind": "contract", - "documentation": "@title Gnosis Safe State Channel Edition - A multisignature wallet with support for confirmations.\n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 530, - "linearizedBaseContracts": [ - 530, - 63, - 1438, - 1142, - 779, - 1559 - ], - "name": "GnosisSafeStateChannelEdition", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 357, - "name": "NAME", - "nodeType": "VariableDeclaration", - "scope": 530, - "src": "353:65:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 355, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "353:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "476e6f7369732053616665205374617465204368616e6e656c2045646974696f6e", - "id": 356, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "383:35:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8ed77695330a1e702d7599137bd776e333a5b5bdc777b481e480866a9eb5edc4", - "typeString": "literal_string \"Gnosis Safe State Channel Edition\"" - }, - "value": "Gnosis Safe State Channel Edition" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 360, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 530, - "src": "424:40:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 358, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "424:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "302e302e31", - "id": 359, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "457:7:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", - "typeString": "literal_string \"0.0.1\"" - }, - "value": "0.0.1" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 364, - "name": "isExecuted", - "nodeType": "VariableDeclaration", - "scope": 530, - "src": "562:43:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 363, - "keyType": { - "id": 361, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "571:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "562:25:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 362, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "582:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 427, - "nodeType": "Block", - "src": "1445:350:4", - "statements": [ - { - "assignments": [ - 387 - ], - "declarations": [ - { - "constant": false, - "id": 387, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1455:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 386, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1455:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 395, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 389, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "1500:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 390, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "1504:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 391, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 370, - "src": "1511:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 392, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "1517:9:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 393, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 374, - "src": "1528:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 388, - "name": "getTransactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 529, - "src": "1481:18:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" - } - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1481:53:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1455:79:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1552:28:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 397, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 364, - "src": "1553:10:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 399, - "indexExpression": { - "argumentTypes": null, - "id": 398, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "1564:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1553:27:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 396, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2468, - 2469 - ], - "referencedDeclaration": 2468, - "src": "1544:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1544:37:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 402, - "nodeType": "ExpressionStatement", - "src": "1544:37:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 404, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "1601:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 405, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 377, - "src": "1618:1:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", - "typeString": "uint8[] memory" - } - }, - { - "argumentTypes": null, - "id": 406, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 380, - "src": "1621:1:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - { - "argumentTypes": null, - "id": 407, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "1624:1:4", - "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" - } - ], - "id": 403, - "name": "checkHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 498, - "src": "1591:9:4", - "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" - } - }, - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1591:35:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 409, - "nodeType": "ExpressionStatement", - "src": "1591:35:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 410, - "name": "isExecuted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 364, - "src": "1689:10:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 412, - "indexExpression": { - "argumentTypes": null, - "id": 411, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "1700:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1689:27:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1719:4:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1689:34:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 415, - "nodeType": "ExpressionStatement", - "src": "1689:34:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 418, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "1749:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 419, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 368, - "src": "1753:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 420, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 370, - "src": "1760:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 421, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 372, - "src": "1766:9:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 422, - "name": "gasleft", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2458, - "src": "1777:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1777:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 417, - "name": "execute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1095, - "src": "1741:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" - } - }, - "id": 424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1741:46:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 416, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2468, - 2469 - ], - "referencedDeclaration": 2468, - "src": "1733:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1733:55:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 426, - "nodeType": "ExpressionStatement", - "src": "1733:55:4" - } - ] - }, - "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 nonce Nonce used for this Safe transaction.\n @param v Array of signature V values sorted by owner addresses.\n @param r Array of signature R values sorted by owner addresses.\n @param s Array of signature S values sorted by owner addresses.", - "id": 428, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeTransaction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 384, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 366, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1242:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 365, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1242:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 368, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1263:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 367, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1263:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 370, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1287:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 369, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1287:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 372, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1308:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 371, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "1308:14:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 374, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1343:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 373, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1343:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 377, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1366:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", - "typeString": "uint8[]" - }, - "typeName": { - "baseType": { - "id": 375, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1366:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 376, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1366:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", - "typeString": "uint8[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 380, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1386:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 378, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1386:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 379, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1386:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 383, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 428, - "src": "1408:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 381, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1408:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 382, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1408:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1232:193:4" - }, - "payable": false, - "returnParameters": { - "id": 385, - "nodeType": "ParameterList", - "parameters": [], - "src": "1445:0:4" - }, - "scope": 530, - "src": "1205:590:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 497, - "nodeType": "Block", - "src": "1916:444:4", - "statements": [ - { - "assignments": [ - 443 - ], - "declarations": [ - { - "constant": false, - "id": 443, - "name": "lastOwner", - "nodeType": "VariableDeclaration", - "scope": 498, - "src": "1978:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 442, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1978:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 447, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2006:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 444, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1998:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1998:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1978:30:4" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 449, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 498, - "src": "2018:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 448, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2018:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 450, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2018:20:4" - }, - { - "assignments": [], - "declarations": [ - { - "constant": false, - "id": 452, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 498, - "src": "2048:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 451, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2048:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 453, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2048:9:4" - }, - { - "body": { - "id": 495, - "nodeType": "Block", - "src": "2141:213:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 464, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "2155:12:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 466, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "2180:15:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 467, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 433, - "src": "2197:1:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", - "typeString": "uint8[] memory" - } - }, - "id": 469, - "indexExpression": { - "argumentTypes": null, - "id": 468, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "2199:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2197:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 470, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 436, - "src": "2203:1:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 472, - "indexExpression": { - "argumentTypes": null, - "id": 471, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "2205:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2203:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 473, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 439, - "src": "2209:1:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[] memory" - } - }, - "id": 475, - "indexExpression": { - "argumentTypes": null, - "id": 474, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "2211:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2209:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 465, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2457, - "src": "2170:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2170:44:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2155:59:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 478, - "nodeType": "ExpressionStatement", - "src": "2155:59:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 480, - "name": "isOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1156 - ], - "referencedDeclaration": 1156, - "src": "2236:7:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 482, - "indexExpression": { - "argumentTypes": null, - "id": 481, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "2244:12:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2236:21:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 479, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2468, - 2469 - ], - "referencedDeclaration": 2468, - "src": "2228:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2228:30:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 484, - "nodeType": "ExpressionStatement", - "src": "2228:30:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 486, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "2280:12:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 487, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 443, - "src": "2295:9:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2280:24:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 485, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2468, - 2469 - ], - "referencedDeclaration": 2468, - "src": "2272:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2272:33:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 490, - "nodeType": "ExpressionStatement", - "src": "2272:33:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 491, - "name": "lastOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 443, - "src": "2319:9:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 492, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "2331:12:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2319:24:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 494, - "nodeType": "ExpressionStatement", - "src": "2319:24:4" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 458, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "2121:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 459, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 1152 - ], - "referencedDeclaration": 1152, - "src": "2125:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "2121:13:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 496, - "initializationExpression": { - "expression": { - "argumentTypes": null, - "id": 456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 454, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "2114:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 455, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2118:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2114:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 457, - "nodeType": "ExpressionStatement", - "src": "2114:5:4" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "2136:3:4", - "subExpression": { - "argumentTypes": null, - "id": 461, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 452, - "src": "2136:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 463, - "nodeType": "ExpressionStatement", - "src": "2136:3:4" - }, - "nodeType": "ForStatement", - "src": "2109:245:4" - } - ] - }, - "documentation": null, - "id": 498, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "checkHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 440, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 430, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 498, - "src": "1820:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 429, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1820:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 433, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 498, - "src": "1845:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", - "typeString": "uint8[]" - }, - "typeName": { - "baseType": { - "id": 431, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1845:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 432, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1845:7:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", - "typeString": "uint8[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 436, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 498, - "src": "1856:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 434, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1856:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 435, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1856:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 439, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 498, - "src": "1869:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", - "typeString": "bytes32[]" - }, - "typeName": { - "baseType": { - "id": 437, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1869:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "id": 438, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1869:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", - "typeString": "bytes32[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1819:62:4" - }, - "payable": false, - "returnParameters": { - "id": 441, - "nodeType": "ParameterList", - "parameters": [], - "src": "1916:0:4" - }, - "scope": 530, - "src": "1801:559:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 528, - "nodeType": "Block", - "src": "2854:95:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 515, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2886:4:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 514, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2881:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 516, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2881:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2898:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2893:4:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 519, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2893:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 520, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2498, - "src": "2902:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafeStateChannelEdition_$530", - "typeString": "contract GnosisSafeStateChannelEdition" - } - }, - { - "argumentTypes": null, - "id": 521, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 500, - "src": "2908:2:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 522, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 502, - "src": "2912:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 523, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 504, - "src": "2919:4:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 524, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 506, - "src": "2925:9:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 525, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 508, - "src": "2936:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_GnosisSafeStateChannelEdition_$530", - "typeString": "contract GnosisSafeStateChannelEdition" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 513, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2459, - "src": "2871:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2871:71:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 512, - "id": 527, - "nodeType": "Return", - "src": "2864:78:4" - } - ] - }, - "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 nonce Transaction nonce.\n @return Transaction hash.", - "id": 529, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 509, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 500, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "2675:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 499, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2675:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 502, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "2696:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 501, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2696:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 504, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "2720:10:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 503, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2720:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 506, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "2741:24:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 505, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 29, - "src": "2741:14:4", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$29", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 508, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "2776:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 507, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2776:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2665:130:4" - }, - "payable": false, - "returnParameters": { - "id": 512, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 511, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 529, - "src": "2841:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 510, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2841:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2840:9:4" - }, - "scope": 530, - "src": "2638:311:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 531, - "src": "281:2670:4" - } - ], - "src": "0:2952:4" - }, - "compiler": { - "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" - }, - "networks": { - "4": { - "events": {}, - "links": {}, - "address": "0xa6f1efbaf462946058ef6086fd562f7ddaf84dda", - "transactionHash": "0xc96d3c71f8b88c6649e4b95ad2f30eadf63f8c4bd58da57a856a3b7931bbbf4f" - }, - "1525950336085": { - "events": {}, - "links": {}, - "address": "0x9327970e8e29e8dba16b28acb177906a92447a0c", - "transactionHash": "0x8b91e38b0bbafe43309aca9832bcd234b82d7ac9f81abe94891cd406a735549c" - }, - "1526283540628": { - "events": {}, - "links": {}, - "address": "0xf2eb76d41d54cc58f9a8e86e2b42d41ccd22a8fa", - "transactionHash": "0x8b91e38b0bbafe43309aca9832bcd234b82d7ac9f81abe94891cd406a735549c" - } - }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-05-14T07:39:37.959Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/GnosisSafeTeamEdition.json b/safe-contracts/build/contracts/GnosisSafeTeamEdition.json index 738fc446..b58c25e2 100644 --- a/safe-contracts/build/contracts/GnosisSafeTeamEdition.json +++ b/safe-contracts/build/contracts/GnosisSafeTeamEdition.json @@ -171,7 +171,7 @@ "outputs": [ { "name": "", - "type": "bool" + "type": "uint256" } ], "payable": false, @@ -452,51 +452,51 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50612c1b806100206000396000f300608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063153414fa1461012a57806324cd131f146101d45780632b5000411461027e5780632f54bf6e14610344578063468721a71461039f578063610b5925146104575780637de7edef1461049a57806385e332cd146104dd57806386040aa9146105345780638cff6355146105a4578063a04222e1146105fb578063a09e89f5146106d4578063a0e67e2b1461073d578063a3f4df7e146107a9578063b2494df314610839578063b7f3358d146108a5578063b91a667f146108d5578063e009cfde14610925578063e318b52b14610988578063e52cb36a14610a0b578063e75235b814610a54578063ffa1ad7414610a85575b005b34801561013657600080fd5b506101d2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610b15565b005b3480156101e057600080fd5b5061027c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610cca565b005b34801561028a57600080fd5b50610326600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610d6d565b60405180826000191660001916815260200191505060405180910390f35b34801561035057600080fd5b50610385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f89565b604051808215151515815260200191505060405180910390f35b3480156103ab57600080fd5b5061043d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919050505061100b565b604051808215151515815260200191505060405180910390f35b34801561046357600080fd5b50610498600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a8565b005b3480156104a657600080fd5b506104db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611325565b005b3480156104e957600080fd5b506104f26113c8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561054057600080fd5b506105a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506113cd565b005b3480156105b057600080fd5b506105b9611653565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561060757600080fd5b506106d260048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611658565b005b3480156106e057600080fd5b506107236004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611672565b604051808215151515815260200191505060405180910390f35b34801561074957600080fd5b506107526116a1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561079557808201518184015260208101905061077a565b505050509050019250505060405180910390f35b3480156107b557600080fd5b506107be61183c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107fe5780820151818401526020810190506107e3565b50505050905090810190601f16801561082b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084557600080fd5b5061084e611875565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610891578082015181840152602081019050610876565b505050509050019250505060405180910390f35b3480156108b157600080fd5b506108d3600480360381019080803560ff169060200190929190505050611b1c565b005b3480156108e157600080fd5b50610923600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611b9b565b005b34801561093157600080fd5b50610986600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e53565b005b34801561099457600080fd5b50610a09600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612086565b005b348015610a1757600080fd5b50610a3a600480360381019080803560001916906020019092919050505061241b565b604051808215151515815260200191505060405180910390f35b348015610a6057600080fd5b50610a6961243b565b604051808260ff1660ff16815260200191505060405180910390f35b348015610a9157600080fd5b50610a9a612452565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ada578082015181840152602081019050610abf565b50505050905090810190601f168015610b075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610b9b57600080fd5b610ba88686868686610d6d565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610bdf57600080fd5b60066000826000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610c5157600080fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050565b6000610cd98686868686610d6d565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610d1057600080fd5b610d198161248b565b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550610d5a868686865a6126e0565b1515610d6557600080fd5b505050505050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b602083101515610f0e5780518252602082019150602081019050602083039250610ee9565b6001836020036101000a038019825116818451168082178552505050505050905001836002811115610f3c57fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040518091039020905095945050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561109157600080fd5b61109e858585855a6126e0565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110e257600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156111365750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561114157600080fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111c557600080fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561135f57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561138557600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561140757600080fd5b8060ff166001600354031015151561141e57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156114b757600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060ff16600460009054906101000a900460ff1660ff1614151561164e5761164d81611b1c565b5b505050565b600181565b61166284846127dd565b61166c8282612a6e565b50505050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b6060806000806003546040519080825280602002602001820160405280156116d85781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156118335780838381518110151561178857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611743565b82935050505090565b6040805190810160405280601881526020017f476e6f7369732053616665205465616d2045646974696f6e000000000000000081525081565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561198957600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506118e4565b826040519080825280602002602001820160405280156119b85781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611b1357818184815181101515611a6857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611a23565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b5657600080fd5b6003548160ff1611151515611b6a57600080fd5b60018160ff1610151515611b7d57600080fd5b80600460006101000a81548160ff021916908360ff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bd557600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611c295750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611c3457600080fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611cb857600080fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060ff16600460009054906101000a900460ff1660ff16141515611e4f57611e4e81611b1c565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e8d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611f2657600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120c057600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156121145750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561211f57600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156121a357600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561223c57600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600460009054906101000a900460ff16905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b600080600080925060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156126b95760066000856000191660001916815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806125cc5750805b1561265257801561264957600060066000866000191660001916815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b82806001019350505b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506124f7565b600460009054906101000a900460ff1660ff1683101515156126da57600080fd5b50505050565b600080600060028111156126f057fe5b8460028111156126fc57fe5b14156127155761270e87878786612bad565b91506127d3565b6001600281111561272257fe5b84600281111561272e57fe5b14156127465761273f878685612bc6565b91506127d2565b61274f85612bdd565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600080600080600460009054906101000a900460ff1660ff1614151561280257600080fd5b84518460ff161115151561281557600080fd5b60018460ff161015151561282857600080fd5b60019250600091505b84518210156129c557848281518110151561284857fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141580156128a85750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156128b357600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561293757600080fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050612831565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550845160038190555083600460006101000a81548160ff021916908360ff1602179055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612af357600080fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515612ba957612b9d82825a612bc6565b1515612ba857600080fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820aa4f2f1bee5ca42e38a155540ac82e19af0bc412962c5bff72447a23481d2d090029", - "deployedBytecode": "0x608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063153414fa1461012a57806324cd131f146101d45780632b5000411461027e5780632f54bf6e14610344578063468721a71461039f578063610b5925146104575780637de7edef1461049a57806385e332cd146104dd57806386040aa9146105345780638cff6355146105a4578063a04222e1146105fb578063a09e89f5146106d4578063a0e67e2b1461073d578063a3f4df7e146107a9578063b2494df314610839578063b7f3358d146108a5578063b91a667f146108d5578063e009cfde14610925578063e318b52b14610988578063e52cb36a14610a0b578063e75235b814610a54578063ffa1ad7414610a85575b005b34801561013657600080fd5b506101d2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610b15565b005b3480156101e057600080fd5b5061027c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610cca565b005b34801561028a57600080fd5b50610326600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610d6d565b60405180826000191660001916815260200191505060405180910390f35b34801561035057600080fd5b50610385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f89565b604051808215151515815260200191505060405180910390f35b3480156103ab57600080fd5b5061043d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919050505061100b565b604051808215151515815260200191505060405180910390f35b34801561046357600080fd5b50610498600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110a8565b005b3480156104a657600080fd5b506104db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611325565b005b3480156104e957600080fd5b506104f26113c8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561054057600080fd5b506105a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506113cd565b005b3480156105b057600080fd5b506105b9611653565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561060757600080fd5b506106d260048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611658565b005b3480156106e057600080fd5b506107236004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611672565b604051808215151515815260200191505060405180910390f35b34801561074957600080fd5b506107526116a1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561079557808201518184015260208101905061077a565b505050509050019250505060405180910390f35b3480156107b557600080fd5b506107be61183c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107fe5780820151818401526020810190506107e3565b50505050905090810190601f16801561082b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084557600080fd5b5061084e611875565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610891578082015181840152602081019050610876565b505050509050019250505060405180910390f35b3480156108b157600080fd5b506108d3600480360381019080803560ff169060200190929190505050611b1c565b005b3480156108e157600080fd5b50610923600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611b9b565b005b34801561093157600080fd5b50610986600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e53565b005b34801561099457600080fd5b50610a09600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612086565b005b348015610a1757600080fd5b50610a3a600480360381019080803560001916906020019092919050505061241b565b604051808215151515815260200191505060405180910390f35b348015610a6057600080fd5b50610a6961243b565b604051808260ff1660ff16815260200191505060405180910390f35b348015610a9157600080fd5b50610a9a612452565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ada578082015181840152602081019050610abf565b50505050905090810190601f168015610b075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610b9b57600080fd5b610ba88686868686610d6d565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610bdf57600080fd5b60066000826000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610c5157600080fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505050505050565b6000610cd98686868686610d6d565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610d1057600080fd5b610d198161248b565b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550610d5a868686865a6126e0565b1515610d6557600080fd5b505050505050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b602083101515610f0e5780518252602082019150602081019050602083039250610ee9565b6001836020036101000a038019825116818451168082178552505050505050905001836002811115610f3c57fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040518091039020905095945050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561109157600080fd5b61109e858585855a6126e0565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110e257600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156111365750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561114157600080fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111c557600080fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561135f57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561138557600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561140757600080fd5b8060ff166001600354031015151561141e57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156114b757600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060ff16600460009054906101000a900460ff1660ff1614151561164e5761164d81611b1c565b5b505050565b600181565b61166284846127dd565b61166c8282612a6e565b50505050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b6060806000806003546040519080825280602002602001820160405280156116d85781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156118335780838381518110151561178857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611743565b82935050505090565b6040805190810160405280601881526020017f476e6f7369732053616665205465616d2045646974696f6e000000000000000081525081565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561198957600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506118e4565b826040519080825280602002602001820160405280156119b85781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611b1357818184815181101515611a6857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611a23565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b5657600080fd5b6003548160ff1611151515611b6a57600080fd5b60018160ff1610151515611b7d57600080fd5b80600460006101000a81548160ff021916908360ff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bd557600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611c295750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611c3457600080fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611cb857600080fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060ff16600460009054906101000a900460ff1660ff16141515611e4f57611e4e81611b1c565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e8d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611f2657600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156120c057600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156121145750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561211f57600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156121a357600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561223c57600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600460009054906101000a900460ff16905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b600080600080925060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156126b95760066000856000191660001916815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1690503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806125cc5750805b1561265257801561264957600060066000866000191660001916815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b82806001019350505b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506124f7565b600460009054906101000a900460ff1660ff1683101515156126da57600080fd5b50505050565b600080600060028111156126f057fe5b8460028111156126fc57fe5b14156127155761270e87878786612bad565b91506127d3565b6001600281111561272257fe5b84600281111561272e57fe5b14156127465761273f878685612bc6565b91506127d2565b61274f85612bdd565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600080600080600460009054906101000a900460ff1660ff1614151561280257600080fd5b84518460ff161115151561281557600080fd5b60018460ff161015151561282857600080fd5b60019250600091505b84518210156129c557848281518110151561284857fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141580156128a85750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156128b357600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561293757600080fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050612831565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550845160038190555083600460006101000a81548160ff021916908360ff1602179055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612af357600080fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515612ba957612b9d82825a612bc6565b1515612ba857600080fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820aa4f2f1bee5ca42e38a155540ac82e19af0bc412962c5bff72447a23481d2d090029", - "sourceMap": "272:3870:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;272:3870:3;;;;;;;", - "deployedSourceMap": "272:3870:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1175:695;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1175:695:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2312:542;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2312:542:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3829:311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3829:311:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1235:391;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;682:63:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;682:63:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;336:56:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;336:56:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;336:56:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1887:299: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;536:43:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;536:43:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4722:113:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4722:113:7;;;;;;;;;;;;;;;;;;;;;;;;;;;398:40:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;398:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;398:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1175:695;1560:23;1476:1;1454:6;:18;1461:10;1454:18;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;1446:32;;;;;;;;1586:53;1605:2;1609:5;1616:4;1622:9;1633:5;1586:18;:53::i;:::-;1560:79;;1658:10;:27;1669:15;1658:27;;;;;;;;;;;;;;;;;;;;;;;;;;;1657:28;1649:37;;;;;;;;1767:10;:27;1778:15;1767:27;;;;;;;;;;;;;;;;;:39;1795:10;1767:39;;;;;;;;;;;;;;;;;;;;;;;;;1766:40;1758:49;;;;;;;;1859:4;1817:10;:27;1828:15;1817:27;;;;;;;;;;;;;;;;;:39;1845:10;1817:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;1175:695;;;;;;:::o;2312:542::-;2506:23;2532:53;2551:2;2555:5;2562:4;2568:9;2579:5;2532:18;:53::i;:::-;2506:79;;2604:10;:27;2615:15;2604:27;;;;;;;;;;;;;;;;;;;;;;;;;;;2603:28;2595:37;;;;;;;;2642:43;2669:15;2642:26;:43::i;:::-;2778:4;2748:10;:27;2759:15;2748:27;;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;2800:46;2808:2;2812:5;2819:4;2825:9;2836;2800:7;:46::i;:::-;2792:55;;;;;;;;2312:542;;;;;;:::o;3829:311::-;4032:7;4077:4;4072:10;;4089:1;4084:7;;4093:4;4099:2;4103:5;4110:4;4116:9;4127:5;4062:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4062:71:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4055:78;;3829:311;;;;;;;:::o;4841:129:7:-;4918:4;4962:1;4945:6;:13;4952:5;4945:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;4938:25;;4841:129;;;:::o;2522:377:6:-;2654:12;2762:1;2739:7;:19;2747:10;2739:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2731:33;;;;;;;;2846:46;2854:2;2858:5;2865:4;2871:9;2882;2846:7;:46::i;:::-;2836:56;;2522:377;;;;;;:::o;1235:391::-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;1401:1:6;1390:6;1382:20;;;;:59;;;;;550:3;1406:35;;1414:6;1406:35;;;;1382:59;1374:68;;;;;;;;1520:1;1501:7;:15;1509:6;1501:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1493:29;;;;;;;;1550:7;:25;550:3;1550:25;;;;;;;;;;;;;;;;;;;;;;;;;1532:7;:15;1540:6;1532:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1613:6;1585:7;:25;550:3;1585:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1235:391;:::o;626:208:4:-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;791:1:4;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o;499:55:6:-;550:3;499:55;:::o;2776:573:7:-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;3000:10:7;2982:28;;2995:1;2982:10;;:14;:28;;2974:37;;;;;;;;3112:5;3091:26;;:6;:17;3098:9;3091:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3083:35;;;;;;;;3148:6;:13;3155:5;3148:13;;;;;;;;;;;;;;;;;;;;;;;;;3128:6;:17;3135:9;3128:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3187:1;3171:6;:13;3178:5;3171:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3198:10;;:12;;;;;;;;;;;;;;3291:10;3278:23;;:9;;;;;;;;;;;:23;;;;3274:68;;;3315:27;3331:10;3315:15;:27::i;:::-;3274:68;2776:573;;;:::o;287:54::-;337:3;287:54;:::o;693:301:1:-;798:32;810:7;819:10;798:11;:32::i;:::-;965:22;978:2;982:4;965:12;:22::i;:::-;693:301;;;;:::o;682:63:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5052:458:7:-;5118:9;5143:22;5237:13;5264:20;5182:10;;5168:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5168:25:7;;;;5143:50;;5253:1;5237:17;;5287:6;:23;337:3;5287:23;;;;;;;;;;;;;;;;;;;;;;;;;5264:46;;5320:162;337:3;5326:31;;:12;:31;;;;5320:162;;;5388:12;5373:5;5379;5373:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;5429:6;:20;5436:12;5429:20;;;;;;;;;;;;;;;;;;;;;;;;;5414:35;;5463:8;;;;;;;5320:162;;;5498:5;5491:12;;5052:458;;;;:::o;336:56:3:-;;;;;;;;;;;;;;;;;;;;:::o;4423:738:6:-;4490:9;4549:19;4582:21;4782:22;4571:1;4549:23;;4606:7;:25;550:3;4606:25;;;;;;;;;;;;;;;;;;;;;;;;;4582:49;;4641:132;550:3;4647:33;;:13;:33;;;;4641:132;;;4712:7;:22;4720:13;4712:22;;;;;;;;;;;;;;;;;;;;;;;;;4696:38;;4748:14;;;;;;;4641:132;;;4821:11;4807:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4807:26:6;;;;4782:51;;4891:1;4877:15;;4918:7;:25;550:3;4918:25;;;;;;;;;;;;;;;;;;;;;;;;;4902:41;;4953:180;550:3;4959:33;;:13;:33;;;;4953:180;;;5029:13;5008:5;5014:11;5008:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5072:7;:22;5080:13;5072:22;;;;;;;;;;;;;;;;;;;;;;;;;5056:38;;5108:14;;;;;;;4953:180;;;5149:5;5142:12;;4423:738;;;;:::o;4398:318:7:-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;4580:10:7;;4566;:24;;;;4558:33;;;;;;;;4675:1;4661:10;:15;;;;4653:24;;;;;;;;4699:10;4687:9;;:22;;;;;;;;;;;;;;;;;;4398:318;:::o;1906:528::-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;2076:1:7;2067:5;:10;;;;:38;;;;;337:3;2081:24;;:5;:24;;;;2067:38;2059:47;;;;;;;;2181:1;2164:6;:13;2171:5;2164:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2156:27;;;;;;;;2209:6;:23;337:3;2209:23;;;;;;;;;;;;;;;;;;;;;;;;;2193:6;:13;2200:5;2193:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2268:5;2242:6;:23;337:3;2242:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2283:10;;:12;;;;;;;;;;;;;2376:10;2363:23;;:9;;;;;;;;;;;:23;;;;2359:68;;;2400:27;2416:10;2400:15;:27::i;:::-;2359:68;1906:528;;:::o;1887:299:6:-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;2095:6:6;2064:38;;:7;:19;2072:10;2064:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2056:47;;;;;;;;2135:7;:15;2143:6;2135:15;;;;;;;;;;;;;;;;;;;;;;;;;2113:7;:19;2121:10;2113:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2178:1;2160:7;:15;2168:6;2160:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1887:299;;:::o;3683:526:7:-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;3866:1:7;3854:8;:13;;;;:44;;;;;337:3;3871:27;;:8;:27;;;;3854:44;3846:53;;;;;;;;3977:1;3957:6;:16;3964:8;3957:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;3949:30;;;;;;;;4080:8;4059:29;;:6;:17;4066:9;4059:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4051:38;;;;;;;;4118:6;:16;4125:8;4118:16;;;;;;;;;;;;;;;;;;;;;;;;;4099:6;:16;4106:8;4099:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4164:8;4144:6;:17;4151:9;4144:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4201:1;4182:6;:16;4189:8;4182:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;3683:526;;;:::o;536:43:3:-;;;;;;;;;;;;;;;;;;;;;;:::o;4722:113:7:-;4791:5;4819:9;;;;;;;;;;;4812:16;;4722:113;:::o;398:40:3:-;;;;;;;;;;;;;;;;;;;;:::o;2860:691::-;2952:21;3029:20;3139:19;2976:1;2952:25;;3052:6;:23;337:3:7;3052:23:3;;;;;;;;;;;;;;;;;;;;;;;;;3029:46;;3085:415;337:3:7;3092:31:3;;:12;:31;;;;3085:415;;;3161:10;:27;3172:15;3161:27;;;;;;;;;;;;;;;;;:41;3189:12;3161:41;;;;;;;;;;;;;;;;;;;;;;;;;3139:63;;3235:10;3219:26;;:12;:26;;;:44;;;;3249:14;3219:44;3216:225;;;3287:14;3283:110;;;3369:5;3325:10;:27;3336:15;3325:27;;;;;;;;;;;;;;;;;:41;3353:12;3325:41;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;3283:110;3410:16;;;;;;;3216:225;3469:6;:20;3476:12;3469:20;;;;;;;;;;;;;;;;;;;;;;;;;3454:35;;3085:415;;;3534:9;;;;;;;;;;;3517:26;;:13;:26;;3509:35;;;;;;;;2860:691;;;;:::o;2905:548:6:-;3036:12;3307:19;3081;3068:32;;;;;;;;:9;:32;;;;;;;;;3064:383;;;3124:35;3136:2;3140:5;3147:4;3153:5;3124:11;:35::i;:::-;3114:45;;3064:383;;;3191:27;3178:40;;;;;;;;:9;:40;;;;;;;;;3174:273;;;3242:36;3262:2;3266:4;3272:5;3242:19;:36::i;:::-;3232:46;;3174:273;;;3329:19;3343:4;3329:13;:19::i;:::-;3307:41;;3387:1;3372:11;:16;;;;3362:26;;3407:29;3424:11;3407:29;;;;;;;;;;;;;;;;;;;;;;3174:273;3064:383;2905:548;;;;;;;;:::o;641:1025:7:-;1132:20;1185:9;1284:13;875:1;862:9;;;;;;;;;;;:14;;;854:23;;;;;;;;984:7;:14;970:10;:28;;;;962:37;;;;;;;;1083:1;1069:10;:15;;;;1061:24;;;;;;;;337:3;1132:38;;1197:1;1185:13;;1180:363;1204:7;:14;1200:1;:18;1180:363;;;1300:7;1308:1;1300:10;;;;;;;;;;;;;;;;;;1284:26;;1341:1;1332:5;:10;;;;:38;;;;;337:3;1346:24;;:5;:24;;;;1332:38;1324:47;;;;;;;;1454:1;1437:6;:13;1444:5;1437:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1429:27;;;;;;;;1493:5;1470:6;:20;1477:12;1470:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1527:5;1512:20;;1220:3;;;;;;;1180:363;;;337:3;1552:6;:20;1559:12;1552:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1613:7;:14;1600:10;:27;;;;1649:10;1637:9;;:22;;;;;;;;;;;;;;;;;;641:1025;;;;;:::o;735:333:6:-;849:1;820:7;:25;550:3;820:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;812:39;;;;;;;;550:3;861:7;:25;550:3;861:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;925:1;919:2;:7;;;;915:146;;;1020:40;1040:2;1044:4;1050:9;1020:19;:40::i;:::-;1012:49;;;;;;;;915:146;735:333;;:::o;3459:309::-;3568:12;3750:1;3747;3740:4;3734:11;3727:4;3721;3717:15;3710:5;3706:2;3699:5;3694:58;3683:69;;3669:93;;;;;;:::o;3774:303::-;3876:12;4059:1;4056;4049:4;4043:11;4036:4;4030;4026:15;4022:2;4015:5;4002:59;3991:70;;3977:94;;;;;:::o;4083:261::-;4152:19;4322:4;4316:11;4309:4;4303;4299:15;4296:1;4289:39;4274:54;;4260:78;;;:::o", - "source": "pragma solidity 0.4.23;\nimport \"./GnosisSafe.sol\";\nimport \"./MasterCopy.sol\";\n\n\n/// @title Gnosis Safe Team Edition - A multisignature wallet with support for confirmations.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract GnosisSafeTeamEdition is MasterCopy, GnosisSafe {\n\n string public constant NAME = \"Gnosis Safe Team Edition\";\n string public constant VERSION = \"0.0.1\";\n\n // isExecuted mapping allows to check if a transaction (by hash) was already executed.\n mapping (bytes32 => bool) public isExecuted;\n\n // isApproved mapping allows to check if a transaction (by hash) was confirmed by an owner.\n mapping (bytes32 => mapping(address => bool)) public isApproved;\n\n /// @dev Allows to confirm a Safe transaction with a regular transaction.\n /// This can only be done from an owner address.\n /// @param to Destination address 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 nonce Nonce used for this Safe transaction.\n function approveTransactionWithParameters(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n {\n // Only Safe owners are allowed to confirm Safe transactions.\n require(owners[msg.sender] != 0);\n // It should not be possible to confirm an executed transaction\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n require(!isExecuted[transactionHash]);\n // It is only possible to confirm a transaction once.\n require(!isApproved[transactionHash][msg.sender]);\n isApproved[transactionHash][msg.sender] = true;\n }\n\n /// @dev Allows to execute a Safe transaction confirmed by required number of owners. If the sender is an owner this is automatically confirmed.\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 nonce Nonce used for this Safe transaction.\n function execTransactionIfApproved(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n {\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n require(!isExecuted[transactionHash]);\n checkAndClearConfirmations(transactionHash);\n // Mark as executed and execute transaction.\n isExecuted[transactionHash] = true;\n require(execute(to, value, data, operation, gasleft()));\n }\n\n function checkAndClearConfirmations(bytes32 transactionHash)\n internal\n {\n uint256 confirmations = 0;\n // Validate threshold is reached.\n address currentOwner = owners[SENTINEL_OWNERS];\n while (currentOwner != SENTINEL_OWNERS) {\n bool ownerConfirmed = isApproved[transactionHash][currentOwner];\n if(currentOwner == msg.sender || ownerConfirmed) {\n if (ownerConfirmed) {\n isApproved[transactionHash][currentOwner] = false;\n }\n confirmations ++;\n }\n currentOwner = owners[currentOwner];\n }\n require(confirmations >= threshold);\n }\n\n /// @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 nonce Transaction nonce.\n /// @return Transaction hash.\n function getTransactionHash(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n view\n returns (bytes32)\n {\n return keccak256(byte(0x19), byte(0), this, to, value, data, operation, nonce);\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50612bc4806100206000396000f300608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063153414fa1461012a57806324cd131f146101d45780632b5000411461027e5780632f54bf6e14610344578063468721a71461039f578063610b5925146104575780637de7edef1461049a57806385e332cd146104dd57806386040aa9146105345780638cff6355146105a4578063a04222e1146105fb578063a09e89f5146106d4578063a0e67e2b14610739578063a3f4df7e146107a5578063b2494df314610835578063b7f3358d146108a1578063b91a667f146108d1578063e009cfde14610921578063e318b52b14610984578063e52cb36a14610a07578063e75235b814610a50578063ffa1ad7414610a81575b005b34801561013657600080fd5b506101d2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610b11565b005b3480156101e057600080fd5b5061027c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610c41565b005b34801561028a57600080fd5b50610326600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610ce4565b60405180826000191660001916815260200191505060405180910390f35b34801561035057600080fd5b50610385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f6c565b604051808215151515815260200191505060405180910390f35b3480156103ab57600080fd5b5061043d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610fee565b604051808215151515815260200191505060405180910390f35b34801561046357600080fd5b50610498600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061108b565b005b3480156104a657600080fd5b506104db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611308565b005b3480156104e957600080fd5b506104f26113ab565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561054057600080fd5b506105a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506113b0565b005b3480156105b057600080fd5b506105b9611636565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561060757600080fd5b506106d260048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061163b565b005b3480156106e057600080fd5b506107236004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611655565b6040518082815260200191505060405180910390f35b34801561074557600080fd5b5061074e61167a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610791578082015181840152602081019050610776565b505050509050019250505060405180910390f35b3480156107b157600080fd5b506107ba611815565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107fa5780820151818401526020810190506107df565b50505050905090810190601f1680156108275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084157600080fd5b5061084a61184e565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561088d578082015181840152602081019050610872565b505050509050019250505060405180910390f35b3480156108ad57600080fd5b506108cf600480360381019080803560ff169060200190929190505050611af5565b005b3480156108dd57600080fd5b5061091f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611b74565b005b34801561092d57600080fd5b50610982600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e2c565b005b34801561099057600080fd5b50610a05600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061205f565b005b348015610a1357600080fd5b50610a3660048036038101908080356000191690602001909291905050506123f4565b604051808215151515815260200191505060405180910390f35b348015610a5c57600080fd5b50610a65612414565b604051808260ff1660ff16815260200191505060405180910390f35b348015610a8d57600080fd5b50610a9661242b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ad6578082015181840152602081019050610abb565b50505050905090810190601f168015610b035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610b9757600080fd5b610ba48686868686610ce4565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610bdb57600080fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b6000610c508686868686610ce4565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c8757600080fd5b610c9081612464565b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550610cd1868686865a612689565b1515610cdc57600080fd5b505050505050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b602083101515610e885780518252602082019150602081019050602083039250610e63565b6001836020036101000a038019825116818451168082178552505050505050905001836002811115610eb657fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515610f345780518252602082019150602081019050602083039250610f0f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561107457600080fd5b611081858585855a612689565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110c557600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156111195750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561112457600080fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111a857600080fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561134257600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561136857600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113ea57600080fd5b8060ff166001600354031015151561140157600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561149a57600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060ff16600460009054906101000a900460ff1660ff161415156116315761163081611af5565b5b505050565b600181565b6116458484612786565b61164f8282612a17565b50505050565b6006602052816000526040600020602052806000526040600020600091509150505481565b6060806000806003546040519080825280602002602001820160405280156116b15781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561180c5780838381518110151561176157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050818060010192505061171c565b82935050505090565b6040805190810160405280601881526020017f476e6f7369732053616665205465616d2045646974696f6e000000000000000081525081565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561196257600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506118bd565b826040519080825280602002602001820160405280156119915781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611aec57818184815181101515611a4157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506119fc565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b2f57600080fd5b6003548160ff1611151515611b4357600080fd5b60018160ff1610151515611b5657600080fd5b80600460006101000a81548160ff021916908360ff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bae57600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611c025750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611c0d57600080fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611c9157600080fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060ff16600460009054906101000a900460ff1660ff16141515611e2857611e2781611af5565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e6657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611eff57600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561209957600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156120ed5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156120f857600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561217c57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561221557600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600460009054906101000a900460ff16905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b60008060008060066000866000191660001916815260200190815260200160002093506000925060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156126615760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141590503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806125a15750805b156125fa5780156125f15760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82806001019350505b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506124ef565b600460009054906101000a900460ff1660ff16831015151561268257600080fd5b5050505050565b6000806000600281111561269957fe5b8460028111156126a557fe5b14156126be576126b787878786612b56565b915061277c565b600160028111156126cb57fe5b8460028111156126d757fe5b14156126ef576126e8878685612b6f565b915061277b565b6126f885612b86565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600080600080600460009054906101000a900460ff1660ff161415156127ab57600080fd5b84518460ff16111515156127be57600080fd5b60018460ff16101515156127d157600080fd5b60019250600091505b845182101561296e5784828151811015156127f157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141580156128515750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561285c57600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156128e057600080fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080925081806001019250506127da565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550845160038190555083600460006101000a81548160ff021916908360ff1602179055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612a9c57600080fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515612b5257612b4682825a612b6f565b1515612b5157600080fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820126f5071abe6229c4f90c0e3e3e154b02acfdfd4934694c5270a471081c34f5f0029", + "deployedBytecode": "0x608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063153414fa1461012a57806324cd131f146101d45780632b5000411461027e5780632f54bf6e14610344578063468721a71461039f578063610b5925146104575780637de7edef1461049a57806385e332cd146104dd57806386040aa9146105345780638cff6355146105a4578063a04222e1146105fb578063a09e89f5146106d4578063a0e67e2b14610739578063a3f4df7e146107a5578063b2494df314610835578063b7f3358d146108a1578063b91a667f146108d1578063e009cfde14610921578063e318b52b14610984578063e52cb36a14610a07578063e75235b814610a50578063ffa1ad7414610a81575b005b34801561013657600080fd5b506101d2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610b11565b005b3480156101e057600080fd5b5061027c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610c41565b005b34801561028a57600080fd5b50610326600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610ce4565b60405180826000191660001916815260200191505060405180910390f35b34801561035057600080fd5b50610385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f6c565b604051808215151515815260200191505060405180910390f35b3480156103ab57600080fd5b5061043d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610fee565b604051808215151515815260200191505060405180910390f35b34801561046357600080fd5b50610498600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061108b565b005b3480156104a657600080fd5b506104db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611308565b005b3480156104e957600080fd5b506104f26113ab565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561054057600080fd5b506105a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506113b0565b005b3480156105b057600080fd5b506105b9611636565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561060757600080fd5b506106d260048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061163b565b005b3480156106e057600080fd5b506107236004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611655565b6040518082815260200191505060405180910390f35b34801561074557600080fd5b5061074e61167a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610791578082015181840152602081019050610776565b505050509050019250505060405180910390f35b3480156107b157600080fd5b506107ba611815565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107fa5780820151818401526020810190506107df565b50505050905090810190601f1680156108275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084157600080fd5b5061084a61184e565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561088d578082015181840152602081019050610872565b505050509050019250505060405180910390f35b3480156108ad57600080fd5b506108cf600480360381019080803560ff169060200190929190505050611af5565b005b3480156108dd57600080fd5b5061091f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050611b74565b005b34801561092d57600080fd5b50610982600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e2c565b005b34801561099057600080fd5b50610a05600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061205f565b005b348015610a1357600080fd5b50610a3660048036038101908080356000191690602001909291905050506123f4565b604051808215151515815260200191505060405180910390f35b348015610a5c57600080fd5b50610a65612414565b604051808260ff1660ff16815260200191505060405180910390f35b348015610a8d57600080fd5b50610a9661242b565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ad6578082015181840152602081019050610abb565b50505050905090810190601f168015610b035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610b9757600080fd5b610ba48686868686610ce4565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610bdb57600080fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b6000610c508686868686610ce4565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c8757600080fd5b610c9081612464565b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550610cd1868686865a612689565b1515610cdc57600080fd5b505050505050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b602083101515610e885780518252602082019150602081019050602083039250610e63565b6001836020036101000a038019825116818451168082178552505050505050905001836002811115610eb657fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515610f345780518252602082019150602081019050602083039250610f0f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561107457600080fd5b611081858585855a612689565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156110c557600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156111195750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561112457600080fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111a857600080fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561134257600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561136857600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113ea57600080fd5b8060ff166001600354031015151561140157600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561149a57600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060ff16600460009054906101000a900460ff1660ff161415156116315761163081611af5565b5b505050565b600181565b6116458484612786565b61164f8282612a17565b50505050565b6006602052816000526040600020602052806000526040600020600091509150505481565b6060806000806003546040519080825280602002602001820160405280156116b15781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561180c5780838381518110151561176157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050818060010192505061171c565b82935050505090565b6040805190810160405280601881526020017f476e6f7369732053616665205465616d2045646974696f6e000000000000000081525081565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561196257600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506118bd565b826040519080825280602002602001820160405280156119915781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611aec57818184815181101515611a4157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506119fc565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b2f57600080fd5b6003548160ff1611151515611b4357600080fd5b60018160ff1610151515611b5657600080fd5b80600460006101000a81548160ff021916908360ff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bae57600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611c025750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611c0d57600080fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611c9157600080fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060ff16600460009054906101000a900460ff1660ff16141515611e2857611e2781611af5565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611e6657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611eff57600080fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561209957600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156120ed5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156120f857600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561217c57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561221557600080fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600460009054906101000a900460ff16905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b60008060008060066000866000191660001916815260200190815260200160002093506000925060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156126615760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141590503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806125a15750805b156125fa5780156125f15760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82806001019350505b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506124ef565b600460009054906101000a900460ff1660ff16831015151561268257600080fd5b5050505050565b6000806000600281111561269957fe5b8460028111156126a557fe5b14156126be576126b787878786612b56565b915061277c565b600160028111156126cb57fe5b8460028111156126d757fe5b14156126ef576126e8878685612b6f565b915061277b565b6126f885612b86565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600080600080600460009054906101000a900460ff1660ff161415156127ab57600080fd5b84518460ff16111515156127be57600080fd5b60018460ff16101515156127d157600080fd5b60019250600091505b845182101561296e5784828151811015156127f157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141580156128515750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561285c57600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156128e057600080fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080925081806001019250506127da565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550845160038190555083600460006101000a81548160ff021916908360ff1602179055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612a9c57600080fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515612b5257612b4682825a612b6f565b1515612b5157600080fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820126f5071abe6229c4f90c0e3e3e154b02acfdfd4934694c5270a471081c34f5f0029", + "sourceMap": "272:3894:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;272:3894:4;;;;;;;", + "deployedSourceMap": "272:3894:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1263:571;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1263:571:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2276:542;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2276:542:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3835:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3835:329:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4841:129:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4841:129:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2522:377:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2522:377:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1235:391;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1235:391:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:208:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:55:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:55:8;;;;;;;;;;;;;;;;;;;;;;;;;;;2776:573:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2776:573:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:9;;;;;;;;;;;;;;;;;;;;;;;;;;;693:301:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;693:301:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;767:66:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;767:66:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5052:458:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5052:458:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:9;;;;;;;;;;;;;;;;;336:56:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;336:56:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;336:56:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4423:738:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4423:738:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:8;;;;;;;;;;;;;;;;;4398:318:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4398:318:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1906:528;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1906:528:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1887:299:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1887:299:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3683:526:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3683:526:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;536:43:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;536:43:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4722:113:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4722:113:9;;;;;;;;;;;;;;;;;;;;;;;;;;;398:40:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;398:40:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;398:40:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1263:571;1576:23;1564:1;1542:6;:18;1549:10;1542:18;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;1534:32;;;;;;;;1602:53;1621:2;1625:5;1632:4;1638:9;1649:5;1602:18;:53::i;:::-;1576:79;;1746:10;:27;1757:15;1746:27;;;;;;;;;;;;;;;;;;;;;;;;;;;1745:28;1737:37;;;;;;;;1826:1;1784:10;:27;1795:15;1784:27;;;;;;;;;;;;;;;;;:39;1812:10;1784:39;;;;;;;;;;;;;;;:43;;;;1263:571;;;;;;:::o;2276:542::-;2470:23;2496:53;2515:2;2519:5;2526:4;2532:9;2543:5;2496:18;:53::i;:::-;2470:79;;2568:10;:27;2579:15;2568:27;;;;;;;;;;;;;;;;;;;;;;;;;;;2567:28;2559:37;;;;;;;;2606:43;2633:15;2606:26;:43::i;:::-;2742:4;2712:10;:27;2723:15;2712:27;;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;2764:46;2772:2;2776:5;2783:4;2789:9;2800;2764:7;:46::i;:::-;2756:55;;;;;;;;2276:542;;;;;;:::o;3835:329::-;4038:7;4100:4;4095:10;;4112:1;4107:7;;4116:4;4122:2;4126:5;4133:4;4139:9;4150:5;4078:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4078:78:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4078:78:4;;;4068:89;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4068:89:4;;;;;;;;;;;;;;;;4061:96;;3835:329;;;;;;;:::o;4841:129:9:-;4918:4;4962:1;4945:6;:13;4952:5;4945:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;4938:25;;4841:129;;;:::o;2522:377:8:-;2654:12;2762:1;2739:7;:19;2747:10;2739:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2731:33;;;;;;;;2846:46;2854:2;2858:5;2865:4;2871:9;2882;2846:7;:46::i;:::-;2836:56;;2522:377;;;;;;:::o;1235:391::-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;1401:1:8;1390:6;1382:20;;;;:59;;;;;550:3;1406:35;;1414:6;1406:35;;;;1382:59;1374:68;;;;;;;;1520:1;1501:7;:15;1509:6;1501:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1493:29;;;;;;;;1550:7;:25;550:3;1550:25;;;;;;;;;;;;;;;;;;;;;;;;;1532:7;:15;1540:6;1532:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1613:6;1585:7;:25;550:3;1585:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1235:391;:::o;626:208:5:-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;791:1:5;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o;499:55:8:-;550:3;499:55;:::o;2776:573:9:-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;3000:10:9;2982:28;;2995:1;2982:10;;:14;:28;;2974:37;;;;;;;;3112:5;3091:26;;:6;:17;3098:9;3091:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3083:35;;;;;;;;3148:6;:13;3155:5;3148:13;;;;;;;;;;;;;;;;;;;;;;;;;3128:6;:17;3135:9;3128:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3187:1;3171:6;:13;3178:5;3171:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3198:10;;:12;;;;;;;;;;;;;;3291:10;3278:23;;:9;;;;;;;;;;;:23;;;;3274:68;;;3315:27;3331:10;3315:15;:27::i;:::-;3274:68;2776:573;;;:::o;287:54::-;337:3;287:54;:::o;693:301:2:-;798:32;810:7;819:10;798:11;:32::i;:::-;965:22;978:2;982:4;965:12;:22::i;:::-;693:301;;;;:::o;767:66:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5052:458:9:-;5118:9;5143:22;5237:13;5264:20;5182:10;;5168:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5168:25:9;;;;5143:50;;5253:1;5237:17;;5287:6;:23;337:3;5287:23;;;;;;;;;;;;;;;;;;;;;;;;;5264:46;;5320:162;337:3;5326:31;;:12;:31;;;;5320:162;;;5388:12;5373:5;5379;5373:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;5429:6;:20;5436:12;5429:20;;;;;;;;;;;;;;;;;;;;;;;;;5414:35;;5463:8;;;;;;;5320:162;;;5498:5;5491:12;;5052:458;;;;:::o;336:56:4:-;;;;;;;;;;;;;;;;;;;;:::o;4423:738:8:-;4490:9;4549:19;4582:21;4782:22;4571:1;4549:23;;4606:7;:25;550:3;4606:25;;;;;;;;;;;;;;;;;;;;;;;;;4582:49;;4641:132;550:3;4647:33;;:13;:33;;;;4641:132;;;4712:7;:22;4720:13;4712:22;;;;;;;;;;;;;;;;;;;;;;;;;4696:38;;4748:14;;;;;;;4641:132;;;4821:11;4807:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4807:26:8;;;;4782:51;;4891:1;4877:15;;4918:7;:25;550:3;4918:25;;;;;;;;;;;;;;;;;;;;;;;;;4902:41;;4953:180;550:3;4959:33;;:13;:33;;;;4953:180;;;5029:13;5008:5;5014:11;5008:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5072:7;:22;5080:13;5072:22;;;;;;;;;;;;;;;;;;;;;;;;;5056:38;;5108:14;;;;;;;4953:180;;;5149:5;5142:12;;4423:738;;;;:::o;4398:318:9:-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;4580:10:9;;4566;:24;;;;4558:33;;;;;;;;4675:1;4661:10;:15;;;;4653:24;;;;;;;;4699:10;4687:9;;:22;;;;;;;;;;;;;;;;;;4398:318;:::o;1906:528::-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;2076:1:9;2067:5;:10;;;;:38;;;;;337:3;2081:24;;:5;:24;;;;2067:38;2059:47;;;;;;;;2181:1;2164:6;:13;2171:5;2164:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2156:27;;;;;;;;2209:6;:23;337:3;2209:23;;;;;;;;;;;;;;;;;;;;;;;;;2193:6;:13;2200:5;2193:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2268:5;2242:6;:23;337:3;2242:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2283:10;;:12;;;;;;;;;;;;;2376:10;2363:23;;:9;;;;;;;;;;;:23;;;;2359:68;;;2400:27;2416:10;2400:15;:27::i;:::-;2359:68;1906:528;;:::o;1887:299:8:-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;2095:6:8;2064:38;;:7;:19;2072:10;2064:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2056:47;;;;;;;;2135:7;:15;2143:6;2135:15;;;;;;;;;;;;;;;;;;;;;;;;;2113:7;:19;2121:10;2113:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2178:1;2160:7;:15;2168:6;2160:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1887:299;;:::o;3683:526:9:-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;3866:1:9;3854:8;:13;;;;:44;;;;;337:3;3871:27;;:8;:27;;;;3854:44;3846:53;;;;;;;;3977:1;3957:6;:16;3964:8;3957:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;3949:30;;;;;;;;4080:8;4059:29;;:6;:17;4066:9;4059:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4051:38;;;;;;;;4118:6;:16;4125:8;4118:16;;;;;;;;;;;;;;;;;;;;;;;;;4099:6;:16;4106:8;4099:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4164:8;4144:6;:17;4151:9;4144:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4201:1;4182:6;:16;4189:8;4182:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;3683:526;;;:::o;536:43:4:-;;;;;;;;;;;;;;;;;;;;;;:::o;4722:113:9:-;4791:5;4819:9;;;;;;;;;;;4812:16;;4722:113;:::o;398:40:4:-;;;;;;;;;;;;;;;;;;;;:::o;2824:733::-;2916:37;2993:21;3070:20;3180:19;2956:10;:27;2967:15;2956:27;;;;;;;;;;;;;;;;;2916:67;;3017:1;2993:25;;3093:6;:23;337:3:9;3093:23:4;;;;;;;;;;;;;;;;;;;;;;;;;3070:46;;3126:380;337:3:9;3133:31:4;;:12;:31;;;;3126:380;;;3229:1;3202:9;:23;3212:12;3202:23;;;;;;;;;;;;;;;;:28;;3180:50;;3263:10;3247:26;;:12;:26;;;:44;;;;3277:14;3247:44;3244:203;;;3315:14;3311:88;;;3379:1;3353:9;:23;3363:12;3353:23;;;;;;;;;;;;;;;:27;;;;3311:88;3416:16;;;;;;;3244:203;3475:6;:20;3482:12;3475:20;;;;;;;;;;;;;;;;;;;;;;;;;3460:35;;3126:380;;;3540:9;;;;;;;;;;;3523:26;;:13;:26;;3515:35;;;;;;;;2824:733;;;;;:::o;2905:548:8:-;3036:12;3307:19;3081;3068:32;;;;;;;;:9;:32;;;;;;;;;3064:383;;;3124:35;3136:2;3140:5;3147:4;3153:5;3124:11;:35::i;:::-;3114:45;;3064:383;;;3191:27;3178:40;;;;;;;;:9;:40;;;;;;;;;3174:273;;;3242:36;3262:2;3266:4;3272:5;3242:19;:36::i;:::-;3232:46;;3174:273;;;3329:19;3343:4;3329:13;:19::i;:::-;3307:41;;3387:1;3372:11;:16;;;;3362:26;;3407:29;3424:11;3407:29;;;;;;;;;;;;;;;;;;;;;;3174:273;3064:383;2905:548;;;;;;;;:::o;641:1025:9:-;1132:20;1185:9;1284:13;875:1;862:9;;;;;;;;;;;:14;;;854:23;;;;;;;;984:7;:14;970:10;:28;;;;962:37;;;;;;;;1083:1;1069:10;:15;;;;1061:24;;;;;;;;337:3;1132:38;;1197:1;1185:13;;1180:363;1204:7;:14;1200:1;:18;1180:363;;;1300:7;1308:1;1300:10;;;;;;;;;;;;;;;;;;1284:26;;1341:1;1332:5;:10;;;;:38;;;;;337:3;1346:24;;:5;:24;;;;1332:38;1324:47;;;;;;;;1454:1;1437:6;:13;1444:5;1437:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1429:27;;;;;;;;1493:5;1470:6;:20;1477:12;1470:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1527:5;1512:20;;1220:3;;;;;;;1180:363;;;337:3;1552:6;:20;1559:12;1552:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1613:7;:14;1600:10;:27;;;;1649:10;1637:9;;:22;;;;;;;;;;;;;;;;;;641:1025;;;;;:::o;735:333:8:-;849:1;820:7;:25;550:3;820:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;812:39;;;;;;;;550:3;861:7;:25;550:3;861:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;925:1;919:2;:7;;;;915:146;;;1020:40;1040:2;1044:4;1050:9;1020:19;:40::i;:::-;1012:49;;;;;;;;915:146;735:333;;:::o;3459:309::-;3568:12;3750:1;3747;3740:4;3734:11;3727:4;3721;3717:15;3710:5;3706:2;3699:5;3694:58;3683:69;;3669:93;;;;;;:::o;3774:303::-;3876:12;4059:1;4056;4049:4;4043:11;4036:4;4030;4026:15;4022:2;4015:5;4002:59;3991:70;;3977:94;;;;;:::o;4083:261::-;4152:19;4322:4;4316:11;4309:4;4303;4299:15;4296:1;4289:39;4274:54;;4260:78;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./GnosisSafe.sol\";\nimport \"./MasterCopy.sol\";\n\n\n/// @title Gnosis Safe Team Edition - A multisignature wallet with support for confirmations.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract GnosisSafeTeamEdition is MasterCopy, GnosisSafe {\n\n string public constant NAME = \"Gnosis Safe Team Edition\";\n string public constant VERSION = \"0.0.1\";\n\n // isExecuted mapping allows to check if a transaction (by hash) was already executed.\n mapping (bytes32 => bool) public isExecuted;\n\n // isApproved mapping allows to check if a transaction (by hash) was confirmed by an owner.\n // uint256 is used to optimize the generated assembly. if 0 then false else true\n mapping (bytes32 => mapping(address => uint256)) public isApproved;\n\n /// @dev Allows to confirm a Safe transaction with a regular transaction.\n /// This can only be done from an owner address.\n /// @param to Destination address 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 nonce Nonce used for this Safe transaction.\n function approveTransactionWithParameters(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n {\n // Only Safe owners are allowed to confirm Safe transactions.\n require(owners[msg.sender] != 0);\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n // It should not be possible to confirm an executed transaction\n require(!isExecuted[transactionHash]);\n isApproved[transactionHash][msg.sender] = 1;\n }\n\n /// @dev Allows to execute a Safe transaction confirmed by required number of owners. If the sender is an owner this is automatically confirmed.\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 nonce Nonce used for this Safe transaction.\n function execTransactionIfApproved(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n {\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n require(!isExecuted[transactionHash]);\n checkAndClearConfirmations(transactionHash);\n // Mark as executed and execute transaction.\n isExecuted[transactionHash] = true;\n require(execute(to, value, data, operation, gasleft()));\n }\n\n function checkAndClearConfirmations(bytes32 transactionHash)\n internal\n {\n mapping(address => uint256) approvals = isApproved[transactionHash];\n uint256 confirmations = 0;\n // Validate threshold is reached.\n address currentOwner = owners[SENTINEL_OWNERS];\n while (currentOwner != SENTINEL_OWNERS) {\n bool ownerConfirmed = approvals[currentOwner] != 0;\n if(currentOwner == msg.sender || ownerConfirmed) {\n if (ownerConfirmed) {\n approvals[currentOwner] = 0;\n }\n confirmations ++;\n }\n currentOwner = owners[currentOwner];\n }\n require(confirmations >= threshold);\n }\n\n /// @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 nonce Transaction nonce.\n /// @return Transaction hash.\n function getTransactionHash(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n view\n returns (bytes32)\n {\n return keccak256(abi.encodePacked(byte(0x19), byte(0), this, to, value, data, operation, nonce));\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafeTeamEdition.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafeTeamEdition.sol", "exportedSymbols": { "GnosisSafeTeamEdition": [ - 554 + 626 ] }, - "id": 555, + "id": 627, "nodeType": "SourceUnit", "nodes": [ { - "id": 326, + "id": 399, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:3" + "src": "0:23:4" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "file": "./GnosisSafe.sol", - "id": 327, + "id": 400, "nodeType": "ImportDirective", - "scope": 555, - "sourceUnit": 40, - "src": "24:26:3", + "scope": 627, + "sourceUnit": 64, + "src": "24:26:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 328, + "id": 401, "nodeType": "ImportDirective", - "scope": 555, - "sourceUnit": 581, - "src": "51:26:3", + "scope": 627, + "sourceUnit": 653, + "src": "51:26:4", "symbolAliases": [], "unitAlias": "" }, @@ -506,68 +506,68 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 329, + "id": 402, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 580, - "src": "306:10:3", + "referencedDeclaration": 652, + "src": "306:10:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$580", + "typeIdentifier": "t_contract$_MasterCopy_$652", "typeString": "contract MasterCopy" } }, - "id": 330, + "id": 403, "nodeType": "InheritanceSpecifier", - "src": "306:10:3" + "src": "306:10:4" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 331, + "id": 404, "name": "GnosisSafe", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 39, - "src": "318:10:3", + "referencedDeclaration": 63, + "src": "318:10:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$39", + "typeIdentifier": "t_contract$_GnosisSafe_$63", "typeString": "contract GnosisSafe" } }, - "id": 332, + "id": 405, "nodeType": "InheritanceSpecifier", - "src": "318:10:3" + "src": "318:10:4" } ], "contractDependencies": [ - 39, - 580, - 971, - 1343, - 1359 + 63, + 652, + 1100, + 1472, + 1619 ], "contractKind": "contract", "documentation": "@title Gnosis Safe Team Edition - A multisignature wallet with support for confirmations.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 554, + "id": 626, "linearizedBaseContracts": [ - 554, - 39, - 1343, - 971, - 580, - 1359 + 626, + 63, + 1472, + 1100, + 652, + 1619 ], "name": "GnosisSafeTeamEdition", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 335, + "id": 408, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 554, - "src": "336:56:3", + "scope": 626, + "src": "336:56:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -575,10 +575,10 @@ "typeString": "string" }, "typeName": { - "id": 333, + "id": 406, "name": "string", "nodeType": "ElementaryTypeName", - "src": "336:6:3", + "src": "336:6:4", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -587,14 +587,14 @@ "value": { "argumentTypes": null, "hexValue": "476e6f7369732053616665205465616d2045646974696f6e", - "id": 334, + "id": 407, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "366:26:3", + "src": "366:26:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_69b1cb372bb47730ba653a0e87363aa6de8337d13ed5852e6fe3ba4e2004a81e", @@ -606,11 +606,11 @@ }, { "constant": true, - "id": 338, + "id": 411, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 554, - "src": "398:40:3", + "scope": 626, + "src": "398:40:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -618,10 +618,10 @@ "typeString": "string" }, "typeName": { - "id": 336, + "id": 409, "name": "string", "nodeType": "ElementaryTypeName", - "src": "398:6:3", + "src": "398:6:4", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -630,14 +630,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 337, + "id": 410, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "431:7:3", + "src": "431:7:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -649,11 +649,11 @@ }, { "constant": false, - "id": 342, + "id": 415, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 554, - "src": "536:43:3", + "scope": 626, + "src": "536:43:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -661,28 +661,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 341, + "id": 414, "keyType": { - "id": 339, + "id": 412, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "545:7:3", + "src": "545:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "536:25:3", + "src": "536:25:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 340, + "id": 413, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "556:4:3", + "src": "556:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -694,61 +694,61 @@ }, { "constant": false, - "id": 348, + "id": 421, "name": "isApproved", "nodeType": "VariableDeclaration", - "scope": 554, - "src": "682:63:3", + "scope": 626, + "src": "767:66:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(bytes32 => mapping(address => uint256))" }, "typeName": { - "id": 347, + "id": 420, "keyType": { - "id": 343, + "id": 416, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "691:7:3", + "src": "776:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "682:45:3", + "src": "767:48:4", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(bytes32 => mapping(address => uint256))" }, "valueType": { - "id": 346, + "id": 419, "keyType": { - "id": 344, + "id": 417, "name": "address", "nodeType": "ElementaryTypeName", - "src": "710:7:3", + "src": "795:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "702:24:3", + "src": "787:27:4", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 345, - "name": "bool", + "id": 418, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "721:4:3", + "src": "806:7:4", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } } @@ -758,9 +758,9 @@ }, { "body": { - "id": 406, + "id": 469, "nodeType": "Block", - "src": "1366:504:3", + "src": "1454:380:4", "statements": [ { "expression": { @@ -772,7 +772,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 367, + "id": 440, "isConstant": false, "isLValue": false, "isPure": false, @@ -781,34 +781,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 362, + "id": 435, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "1454:6:3", + "referencedDeclaration": 1114, + "src": "1542:6:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 365, + "id": 438, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 363, + "id": 436, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "1461:3:3", + "referencedDeclaration": 2598, + "src": "1549:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 364, + "id": 437, "isConstant": false, "isLValue": false, "isPure": false, @@ -816,7 +816,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1461:10:3", + "src": "1549:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -827,7 +827,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1454:18:3", + "src": "1542:18:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -838,14 +838,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 366, + "id": 439, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1476:1:3", + "src": "1564:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -853,7 +853,7 @@ }, "value": "0" }, - "src": "1454:23:3", + "src": "1542:23:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -867,21 +867,21 @@ "typeString": "bool" } ], - "id": 361, + "id": 434, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1446:7:3", + "referencedDeclaration": 2601, + "src": "1534:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 368, + "id": 441, "isConstant": false, "isLValue": false, "isPure": false, @@ -889,28 +889,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1446:32:3", + "src": "1534:32:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 369, + "id": 442, "nodeType": "ExpressionStatement", - "src": "1446:32:3" + "src": "1534:32:4" }, { "assignments": [ - 371 + 444 ], "declarations": [ { "constant": false, - "id": 371, + "id": 444, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 407, - "src": "1560:23:3", + "scope": 470, + "src": "1576:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -918,10 +918,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 370, + "id": 443, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1560:7:3", + "src": "1576:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -931,18 +931,18 @@ "visibility": "internal" } ], - "id": 379, + "id": 452, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 373, + "id": 446, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 350, - "src": "1605:2:3", + "referencedDeclaration": 423, + "src": "1621:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -950,12 +950,12 @@ }, { "argumentTypes": null, - "id": 374, + "id": 447, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 352, - "src": "1609:5:3", + "referencedDeclaration": 425, + "src": "1625:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -963,12 +963,12 @@ }, { "argumentTypes": null, - "id": 375, + "id": 448, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 354, - "src": "1616:4:3", + "referencedDeclaration": 427, + "src": "1632:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -976,25 +976,25 @@ }, { "argumentTypes": null, - "id": 376, + "id": 449, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "1622:9:3", + "referencedDeclaration": 429, + "src": "1638:9:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 377, + "id": 450, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 358, - "src": "1633:5:3", + "referencedDeclaration": 431, + "src": "1649:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1016,7 +1016,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -1024,18 +1024,18 @@ "typeString": "uint256" } ], - "id": 372, + "id": 445, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 553, - "src": "1586:18:3", + "referencedDeclaration": 625, + "src": "1602:18:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" } }, - "id": 378, + "id": 451, "isConstant": false, "isLValue": false, "isPure": false, @@ -1043,14 +1043,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1586:53:3", + "src": "1602:53:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "1560:79:3" + "src": "1576:79:4" }, { "expression": { @@ -1058,7 +1058,7 @@ "arguments": [ { "argumentTypes": null, - "id": 384, + "id": 457, "isConstant": false, "isLValue": false, "isPure": false, @@ -1066,31 +1066,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1657:28:3", + "src": "1745:28:4", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 381, + "id": 454, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "1658:10:3", + "referencedDeclaration": 415, + "src": "1746:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 383, + "id": 456, "indexExpression": { "argumentTypes": null, - "id": 382, + "id": 455, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "1669:15:3", + "referencedDeclaration": 444, + "src": "1757:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1101,7 +1101,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1658:27:3", + "src": "1746:27:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1120,21 +1120,21 @@ "typeString": "bool" } ], - "id": 380, + "id": 453, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1649:7:3", + "referencedDeclaration": 2601, + "src": "1737:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 385, + "id": 458, "isConstant": false, "isLValue": false, "isPure": false, @@ -1142,163 +1142,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1649:37:3", + "src": "1737:37:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 386, + "id": 459, "nodeType": "ExpressionStatement", - "src": "1649:37:3" + "src": "1737:37:4" }, { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1766:40:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 388, - "name": "isApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "1767:10:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - } - }, - "id": 390, - "indexExpression": { - "argumentTypes": null, - "id": 389, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "1778:15:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1767:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 393, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 391, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "1795:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1795:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1767:39:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 387, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2399, - 2400 - ], - "referencedDeclaration": 2399, - "src": "1758:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1758:49:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 396, - "nodeType": "ExpressionStatement", - "src": "1758:49:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 404, + "id": 467, "isConstant": false, "isLValue": false, "isPure": false, @@ -1309,26 +1166,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 397, + "id": 460, "name": "isApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "1817:10:3", + "referencedDeclaration": 421, + "src": "1784:10:4", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(bytes32 => mapping(address => uint256))" } }, - "id": 401, + "id": 464, "indexExpression": { "argumentTypes": null, - "id": 398, + "id": 461, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "1828:15:3", + "referencedDeclaration": 444, + "src": "1795:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1339,29 +1196,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1817:27:3", + "src": "1784:27:4", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } }, - "id": 402, + "id": 465, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 399, + "id": 462, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "1845:3:3", + "referencedDeclaration": 2598, + "src": "1812:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 400, + "id": 463, "isConstant": false, "isLValue": false, "isPure": false, @@ -1369,7 +1226,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1845:10:3", + "src": "1812:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1380,46 +1237,46 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1817:39:3", + "src": "1784:39:4", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "hexValue": "74727565", - "id": 403, + "hexValue": "31", + "id": 466, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "bool", + "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1859:4:3", + "src": "1826:1:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "value": "true" + "value": "1" }, - "src": "1817:46:3", + "src": "1784:43:4", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 405, + "id": 468, "nodeType": "ExpressionStatement", - "src": "1817:46:3" + "src": "1784:43:4" } ] }, "documentation": "@dev Allows to confirm a Safe transaction with a regular transaction.\n This can only be done from an owner address.\n @param to Destination address 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 nonce Nonce used for this Safe transaction.", - "id": 407, + "id": 470, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1427,16 +1284,16 @@ "name": "approveTransactionWithParameters", "nodeType": "FunctionDefinition", "parameters": { - "id": 359, + "id": 432, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 350, + "id": 423, "name": "to", "nodeType": "VariableDeclaration", - "scope": 407, - "src": "1226:10:3", + "scope": 470, + "src": "1314:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1444,10 +1301,10 @@ "typeString": "address" }, "typeName": { - "id": 349, + "id": 422, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1226:7:3", + "src": "1314:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1458,11 +1315,11 @@ }, { "constant": false, - "id": 352, + "id": 425, "name": "value", "nodeType": "VariableDeclaration", - "scope": 407, - "src": "1247:13:3", + "scope": 470, + "src": "1335:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1470,10 +1327,10 @@ "typeString": "uint256" }, "typeName": { - "id": 351, + "id": 424, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1247:7:3", + "src": "1335:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1484,11 +1341,11 @@ }, { "constant": false, - "id": 354, + "id": 427, "name": "data", "nodeType": "VariableDeclaration", - "scope": 407, - "src": "1271:10:3", + "scope": 470, + "src": "1359:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1496,10 +1353,10 @@ "typeString": "bytes" }, "typeName": { - "id": 353, + "id": 426, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1271:5:3", + "src": "1359:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1510,26 +1367,26 @@ }, { "constant": false, - "id": 356, + "id": 429, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 407, - "src": "1292:24:3", + "scope": 470, + "src": "1380:24:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 355, + "id": 428, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "1292:14:3", + "referencedDeclaration": 29, + "src": "1380:14:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -1538,11 +1395,11 @@ }, { "constant": false, - "id": 358, + "id": 431, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 407, - "src": "1327:13:3", + "scope": 470, + "src": "1415:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1550,10 +1407,10 @@ "typeString": "uint256" }, "typeName": { - "id": 357, + "id": 430, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1327:7:3", + "src": "1415:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1563,39 +1420,39 @@ "visibility": "internal" } ], - "src": "1216:130:3" + "src": "1304:130:4" }, "payable": false, "returnParameters": { - "id": 360, + "id": 433, "nodeType": "ParameterList", "parameters": [], - "src": "1366:0:3" + "src": "1454:0:4" }, - "scope": 554, - "src": "1175:695:3", + "scope": 626, + "src": "1263:571:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 458, + "id": 521, "nodeType": "Block", - "src": "2496:358:3", + "src": "2460:358:4", "statements": [ { "assignments": [ - 421 + 484 ], "declarations": [ { "constant": false, - "id": 421, + "id": 484, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 459, - "src": "2506:23:3", + "scope": 522, + "src": "2470:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1603,10 +1460,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 420, + "id": 483, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2506:7:3", + "src": "2470:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1616,18 +1473,18 @@ "visibility": "internal" } ], - "id": 429, + "id": 492, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 423, + "id": 486, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "2551:2:3", + "referencedDeclaration": 472, + "src": "2515:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1635,12 +1492,12 @@ }, { "argumentTypes": null, - "id": 424, + "id": 487, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "2555:5:3", + "referencedDeclaration": 474, + "src": "2519:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1648,12 +1505,12 @@ }, { "argumentTypes": null, - "id": 425, + "id": 488, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 413, - "src": "2562:4:3", + "referencedDeclaration": 476, + "src": "2526:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1661,25 +1518,25 @@ }, { "argumentTypes": null, - "id": 426, + "id": 489, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "2568:9:3", + "referencedDeclaration": 478, + "src": "2532:9:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 427, + "id": 490, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 417, - "src": "2579:5:3", + "referencedDeclaration": 480, + "src": "2543:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1701,7 +1558,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -1709,18 +1566,18 @@ "typeString": "uint256" } ], - "id": 422, + "id": 485, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 553, - "src": "2532:18:3", + "referencedDeclaration": 625, + "src": "2496:18:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" } }, - "id": 428, + "id": 491, "isConstant": false, "isLValue": false, "isPure": false, @@ -1728,14 +1585,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2532:53:3", + "src": "2496:53:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2506:79:3" + "src": "2470:79:4" }, { "expression": { @@ -1743,7 +1600,7 @@ "arguments": [ { "argumentTypes": null, - "id": 434, + "id": 497, "isConstant": false, "isLValue": false, "isPure": false, @@ -1751,31 +1608,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2603:28:3", + "src": "2567:28:4", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 431, + "id": 494, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "2604:10:3", + "referencedDeclaration": 415, + "src": "2568:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 433, + "id": 496, "indexExpression": { "argumentTypes": null, - "id": 432, + "id": 495, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "2615:15:3", + "referencedDeclaration": 484, + "src": "2579:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1786,7 +1643,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2604:27:3", + "src": "2568:27:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1805,21 +1662,21 @@ "typeString": "bool" } ], - "id": 430, + "id": 493, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2595:7:3", + "referencedDeclaration": 2601, + "src": "2559:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 435, + "id": 498, "isConstant": false, "isLValue": false, "isPure": false, @@ -1827,15 +1684,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2595:37:3", + "src": "2559:37:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 436, + "id": 499, "nodeType": "ExpressionStatement", - "src": "2595:37:3" + "src": "2559:37:4" }, { "expression": { @@ -1843,12 +1700,12 @@ "arguments": [ { "argumentTypes": null, - "id": 438, + "id": 501, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "2669:15:3", + "referencedDeclaration": 484, + "src": "2633:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1862,18 +1719,18 @@ "typeString": "bytes32" } ], - "id": 437, + "id": 500, "name": "checkAndClearConfirmations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "2642:26:3", + "referencedDeclaration": 591, + "src": "2606:26:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 439, + "id": 502, "isConstant": false, "isLValue": false, "isPure": false, @@ -1881,20 +1738,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2642:43:3", + "src": "2606:43:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 440, + "id": 503, "nodeType": "ExpressionStatement", - "src": "2642:43:3" + "src": "2606:43:4" }, { "expression": { "argumentTypes": null, - "id": 445, + "id": 508, "isConstant": false, "isLValue": false, "isPure": false, @@ -1903,26 +1760,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 441, + "id": 504, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "2748:10:3", + "referencedDeclaration": 415, + "src": "2712:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 443, + "id": 506, "indexExpression": { "argumentTypes": null, - "id": 442, + "id": 505, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "2759:15:3", + "referencedDeclaration": 484, + "src": "2723:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1933,7 +1790,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2748:27:3", + "src": "2712:27:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1944,14 +1801,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 444, + "id": 507, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2778:4:3", + "src": "2742:4:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1959,15 +1816,15 @@ }, "value": "true" }, - "src": "2748:34:3", + "src": "2712:34:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 446, + "id": 509, "nodeType": "ExpressionStatement", - "src": "2748:34:3" + "src": "2712:34:4" }, { "expression": { @@ -1978,12 +1835,12 @@ "arguments": [ { "argumentTypes": null, - "id": 449, + "id": 512, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "2808:2:3", + "referencedDeclaration": 472, + "src": "2772:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1991,12 +1848,12 @@ }, { "argumentTypes": null, - "id": 450, + "id": 513, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "2812:5:3", + "referencedDeclaration": 474, + "src": "2776:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2004,12 +1861,12 @@ }, { "argumentTypes": null, - "id": 451, + "id": 514, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 413, - "src": "2819:4:3", + "referencedDeclaration": 476, + "src": "2783:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2017,14 +1874,14 @@ }, { "argumentTypes": null, - "id": 452, + "id": 515, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "2825:9:3", + "referencedDeclaration": 478, + "src": "2789:9:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -2033,18 +1890,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 453, + "id": 516, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "2836:7:3", + "referencedDeclaration": 2591, + "src": "2800:7:4", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 454, + "id": 517, "isConstant": false, "isLValue": false, "isPure": false, @@ -2052,7 +1909,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2836:9:3", + "src": "2800:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2074,7 +1931,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -2082,18 +1939,18 @@ "typeString": "uint256" } ], - "id": 448, + "id": 511, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 860, - "src": "2800:7:3", + "referencedDeclaration": 989, + "src": "2764:7:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" } }, - "id": 455, + "id": 518, "isConstant": false, "isLValue": false, "isPure": false, @@ -2101,7 +1958,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2800:46:3", + "src": "2764:46:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2115,906 +1972,15 @@ "typeString": "bool" } ], - "id": 447, + "id": 510, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2792:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2792:55:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 457, - "nodeType": "ExpressionStatement", - "src": "2792:55:3" - } - ] - }, - "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners. If the sender is an owner this is automatically confirmed.\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 nonce Nonce used for this Safe transaction.", - "id": 459, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "execTransactionIfApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 418, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 409, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 459, - "src": "2356:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 408, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2356:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 411, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 459, - "src": "2377:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 410, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2377:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 413, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 459, - "src": "2401:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 412, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2401:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 415, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 459, - "src": "2422:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 414, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "2422:14:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 417, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 459, - "src": "2457:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 416, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2457:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2346:130:3" - }, - "payable": false, - "returnParameters": { - "id": 419, - "nodeType": "ParameterList", - "parameters": [], - "src": "2496:0:3" - }, - "scope": 554, - "src": "2312:542:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 521, - "nodeType": "Block", - "src": "2942:609:3", - "statements": [ - { - "assignments": [ - 465 - ], - "declarations": [ - { - "constant": false, - "id": 465, - "name": "confirmations", - "nodeType": "VariableDeclaration", - "scope": 522, - "src": "2952:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 464, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2952:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 466, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2976:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2952:25:3" - }, - { - "assignments": [ - 469 - ], - "declarations": [ - { - "constant": false, - "id": 469, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 522, - "src": "3029:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 468, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3029:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 473, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 470, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "3052:6:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 472, - "indexExpression": { - "argumentTypes": null, - "id": 471, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3059:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3052:23:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3029:46:3" - }, - { - "body": { - "id": 513, - "nodeType": "Block", - "src": "3125:375:3", - "statements": [ - { - "assignments": [ - 478 - ], - "declarations": [ - { - "constant": false, - "id": 478, - "name": "ownerConfirmed", - "nodeType": "VariableDeclaration", - "scope": 522, - "src": "3139:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 477, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3139:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 484, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 479, - "name": "isApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "3161:10:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - } - }, - "id": 481, - "indexExpression": { - "argumentTypes": null, - "id": 480, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 461, - "src": "3172:15:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3161:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 483, - "indexExpression": { - "argumentTypes": null, - "id": 482, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 469, - "src": "3189:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3161:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3139:63:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 485, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 469, - "src": "3219:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 486, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "3235:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3235:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3219:26:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 489, - "name": "ownerConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "3249:14:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3219:44:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 506, - "nodeType": "IfStatement", - "src": "3216:225:3", - "trueBody": { - "id": 505, - "nodeType": "Block", - "src": "3265:176:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 491, - "name": "ownerConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "3287:14:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 501, - "nodeType": "IfStatement", - "src": "3283:110:3", - "trueBody": { - "id": 500, - "nodeType": "Block", - "src": "3303:90:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 492, - "name": "isApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "3325:10:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - } - }, - "id": 495, - "indexExpression": { - "argumentTypes": null, - "id": 493, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 461, - "src": "3336:15:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3325:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 496, - "indexExpression": { - "argumentTypes": null, - "id": 494, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 469, - "src": "3353:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3325:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3369:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "3325:49:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "3325:49:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3410:16:3", - "subExpression": { - "argumentTypes": null, - "id": 502, - "name": "confirmations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 465, - "src": "3410:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 504, - "nodeType": "ExpressionStatement", - "src": "3410:16:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 507, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 469, - "src": "3454:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 508, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "3469:6:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 510, - "indexExpression": { - "argumentTypes": null, - "id": 509, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 469, - "src": "3476:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3469:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3454:35:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 512, - "nodeType": "ExpressionStatement", - "src": "3454:35:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 474, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 469, - "src": "3092:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 475, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3108:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3092:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 514, - "nodeType": "WhileStatement", - "src": "3085:415:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 516, - "name": "confirmations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 465, - "src": "3517:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 517, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "3534:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "3517:26:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 515, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2399, - 2400 - ], - "referencedDeclaration": 2399, - "src": "3509:7:3", + "referencedDeclaration": 2601, + "src": "2756:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" @@ -3028,7 +1994,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3509:35:3", + "src": "2756:55:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" @@ -3036,351 +2002,29 @@ }, "id": 520, "nodeType": "ExpressionStatement", - "src": "3509:35:3" + "src": "2756:55:4" } ] }, - "documentation": null, + "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners. If the sender is an owner this is automatically confirmed.\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 nonce Nonce used for this Safe transaction.", "id": 522, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "checkAndClearConfirmations", + "name": "execTransactionIfApproved", "nodeType": "FunctionDefinition", "parameters": { - "id": 462, + "id": 481, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 461, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 522, - "src": "2896:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 460, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2896:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2895:25:3" - }, - "payable": false, - "returnParameters": { - "id": 463, - "nodeType": "ParameterList", - "parameters": [], - "src": "2942:0:3" - }, - "scope": 554, - "src": "2860:691:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 552, - "nodeType": "Block", - "src": "4045:95:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4077:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4072:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 540, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4072:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4089:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4084:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4084:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 544, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2425, - "src": "4093:4:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$554", - "typeString": "contract GnosisSafeTeamEdition" - } - }, - { - "argumentTypes": null, - "id": 545, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "4099:2:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 546, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 526, - "src": "4103:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 547, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 528, - "src": "4110:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 548, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "4116:9:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 549, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 532, - "src": "4127:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$554", - "typeString": "contract GnosisSafeTeamEdition" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 537, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2390, - "src": "4062:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4062:71:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 536, - "id": 551, - "nodeType": "Return", - "src": "4055:78:3" - } - ] - }, - "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 nonce Transaction nonce.\n @return Transaction hash.", - "id": 553, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 524, + "id": 472, "name": "to", "nodeType": "VariableDeclaration", - "scope": 553, - "src": "3866:10:3", + "scope": 522, + "src": "2320:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3388,10 +2032,10 @@ "typeString": "address" }, "typeName": { - "id": 523, + "id": 471, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3866:7:3", + "src": "2320:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3402,11 +2046,11 @@ }, { "constant": false, - "id": 526, + "id": 474, "name": "value", "nodeType": "VariableDeclaration", - "scope": 553, - "src": "3887:13:3", + "scope": 522, + "src": "2341:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3414,10 +2058,10 @@ "typeString": "uint256" }, "typeName": { - "id": 525, + "id": 473, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3887:7:3", + "src": "2341:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3428,11 +2072,11 @@ }, { "constant": false, - "id": 528, + "id": 476, "name": "data", "nodeType": "VariableDeclaration", - "scope": 553, - "src": "3911:10:3", + "scope": 522, + "src": "2365:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3440,10 +2084,10 @@ "typeString": "bytes" }, "typeName": { - "id": 527, + "id": 475, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3911:5:3", + "src": "2365:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3454,26 +2098,26 @@ }, { "constant": false, - "id": 530, + "id": 478, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 553, - "src": "3932:24:3", + "scope": 522, + "src": "2386:24:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 529, + "id": 477, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "3932:14:3", + "referencedDeclaration": 29, + "src": "2386:14:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -3482,11 +2126,11 @@ }, { "constant": false, - "id": 532, + "id": 480, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 553, - "src": "3967:13:3", + "scope": 522, + "src": "2421:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3494,10 +2138,10 @@ "typeString": "uint256" }, "typeName": { - "id": 531, + "id": 479, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3967:7:3", + "src": "2421:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3507,20 +2151,849 @@ "visibility": "internal" } ], - "src": "3856:130:3" + "src": "2310:130:4" }, "payable": false, "returnParameters": { - "id": 536, + "id": 482, + "nodeType": "ParameterList", + "parameters": [], + "src": "2460:0:4" + }, + "scope": 626, + "src": "2276:542:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 590, + "nodeType": "Block", + "src": "2906:651:4", + "statements": [ + { + "assignments": [ + 530 + ], + "declarations": [ + { + "constant": false, + "id": 530, + "name": "approvals", + "nodeType": "VariableDeclaration", + "scope": 591, + "src": "2916:37:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 529, + "keyType": { + "id": 527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2924:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2916:27:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 528, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2935:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 534, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 531, + "name": "isApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 421, + "src": "2956:10:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(bytes32 => mapping(address => uint256))" + } + }, + "id": 533, + "indexExpression": { + "argumentTypes": null, + "id": 532, + "name": "transactionHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "2967:15:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2956:27:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2916:67:4" + }, + { + "assignments": [ + 536 + ], + "declarations": [ + { + "constant": false, + "id": 536, + "name": "confirmations", + "nodeType": "VariableDeclaration", + "scope": 591, + "src": "2993:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 535, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2993:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 538, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3017:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2993:25:4" + }, + { + "assignments": [ + 540 + ], + "declarations": [ + { + "constant": false, + "id": 540, + "name": "currentOwner", + "nodeType": "VariableDeclaration", + "scope": 591, + "src": "3070:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3070:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 544, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 541, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "3093:6:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 543, + "indexExpression": { + "argumentTypes": null, + "id": 542, + "name": "SENTINEL_OWNERS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1110, + "src": "3100:15:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3093:23:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3070:46:4" + }, + { + "body": { + "id": 582, + "nodeType": "Block", + "src": "3166:340:4", + "statements": [ + { + "assignments": [ + 549 + ], + "declarations": [ + { + "constant": false, + "id": 549, + "name": "ownerConfirmed", + "nodeType": "VariableDeclaration", + "scope": 591, + "src": "3180:19:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 548, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3180:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 555, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 550, + "name": "approvals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 530, + "src": "3202:9:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 552, + "indexExpression": { + "argumentTypes": null, + "id": 551, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3212:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3202:23:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3229:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3202:28:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3180:50:4" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 556, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3247:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 557, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2598, + "src": "3263:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3263:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3247:26:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "id": 560, + "name": "ownerConfirmed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "3277:14:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3247:44:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 575, + "nodeType": "IfStatement", + "src": "3244:203:4", + "trueBody": { + "id": 574, + "nodeType": "Block", + "src": "3293:154:4", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 562, + "name": "ownerConfirmed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "3315:14:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 570, + "nodeType": "IfStatement", + "src": "3311:88:4", + "trueBody": { + "id": 569, + "nodeType": "Block", + "src": "3331:68:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 563, + "name": "approvals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 530, + "src": "3353:9:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 565, + "indexExpression": { + "argumentTypes": null, + "id": 564, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3363:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3353:23:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3379:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3353:27:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 568, + "nodeType": "ExpressionStatement", + "src": "3353:27:4" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3416:16:4", + "subExpression": { + "argumentTypes": null, + "id": 571, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "3416:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 573, + "nodeType": "ExpressionStatement", + "src": "3416:16:4" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 576, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3460:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 577, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "3475:6:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 579, + "indexExpression": { + "argumentTypes": null, + "id": 578, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3482:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3475:20:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3460:35:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 581, + "nodeType": "ExpressionStatement", + "src": "3460:35:4" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 545, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3133:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 546, + "name": "SENTINEL_OWNERS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1110, + "src": "3149:15:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3133:31:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 583, + "nodeType": "WhileStatement", + "src": "3126:380:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 585, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "3523:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 586, + "name": "threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "3540:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3523:26:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 584, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2601, + 2602 + ], + "referencedDeclaration": 2601, + "src": "3515:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3515:35:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 589, + "nodeType": "ExpressionStatement", + "src": "3515:35:4" + } + ] + }, + "documentation": null, + "id": 591, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "checkAndClearConfirmations", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 525, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 535, - "name": "", + "id": 524, + "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 553, - "src": "4032:7:3", + "scope": 591, + "src": "2860:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3528,10 +3001,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 534, + "id": 523, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4032:7:3", + "src": "2860:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3541,60 +3014,574 @@ "visibility": "internal" } ], - "src": "4031:9:3" + "src": "2859:25:4" }, - "scope": 554, - "src": "3829:311:3", + "payable": false, + "returnParameters": { + "id": 526, + "nodeType": "ParameterList", + "parameters": [], + "src": "2906:0:4" + }, + "scope": 626, + "src": "2824:733:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 624, + "nodeType": "Block", + "src": "4051:113:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30783139", + "id": 610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4100:4:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + }, + "value": "0x19" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + } + ], + "id": 609, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4095:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 611, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4095:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4112:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4107:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4107:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "id": 615, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2633, + "src": "4116:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$626", + "typeString": "contract GnosisSafeTeamEdition" + } + }, + { + "argumentTypes": null, + "id": 616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "4122:2:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 617, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 595, + "src": "4126:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 618, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 597, + "src": "4133:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 619, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "4139:9:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "id": 620, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 601, + "src": "4150:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$626", + "typeString": "contract GnosisSafeTeamEdition" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 607, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2585, + "src": "4078:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4078:16:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4078:78:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 606, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2592, + "src": "4068:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4068:89:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 605, + "id": 623, + "nodeType": "Return", + "src": "4061:96:4" + } + ] + }, + "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 nonce Transaction nonce.\n @return Transaction hash.", + "id": 625, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTransactionHash", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 593, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "3872:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3872:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "3893:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3893:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 597, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "3917:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 596, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3917:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 599, + "name": "operation", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "3938:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + }, + "typeName": { + "contractScope": null, + "id": 598, + "name": "Enum.Operation", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 29, + "src": "3938:14:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 601, + "name": "nonce", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "3973:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3973:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3862:130:4" + }, + "payable": false, + "returnParameters": { + "id": 605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 604, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "4038:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 603, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4038:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4037:9:4" + }, + "scope": 626, + "src": "3835:329:4", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 555, - "src": "272:3870:3" + "scope": 627, + "src": "272:3894:4" } ], - "src": "0:4143:3" + "src": "0:4167:4" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafeTeamEdition.sol", "exportedSymbols": { "GnosisSafeTeamEdition": [ - 554 + 626 ] }, - "id": 555, + "id": 627, "nodeType": "SourceUnit", "nodes": [ { - "id": 326, + "id": 399, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:3" + "src": "0:23:4" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "file": "./GnosisSafe.sol", - "id": 327, + "id": 400, "nodeType": "ImportDirective", - "scope": 555, - "sourceUnit": 40, - "src": "24:26:3", + "scope": 627, + "sourceUnit": 64, + "src": "24:26:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 328, + "id": 401, "nodeType": "ImportDirective", - "scope": 555, - "sourceUnit": 581, - "src": "51:26:3", + "scope": 627, + "sourceUnit": 653, + "src": "51:26:4", "symbolAliases": [], "unitAlias": "" }, @@ -3604,68 +3591,68 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 329, + "id": 402, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 580, - "src": "306:10:3", + "referencedDeclaration": 652, + "src": "306:10:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$580", + "typeIdentifier": "t_contract$_MasterCopy_$652", "typeString": "contract MasterCopy" } }, - "id": 330, + "id": 403, "nodeType": "InheritanceSpecifier", - "src": "306:10:3" + "src": "306:10:4" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 331, + "id": 404, "name": "GnosisSafe", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 39, - "src": "318:10:3", + "referencedDeclaration": 63, + "src": "318:10:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$39", + "typeIdentifier": "t_contract$_GnosisSafe_$63", "typeString": "contract GnosisSafe" } }, - "id": 332, + "id": 405, "nodeType": "InheritanceSpecifier", - "src": "318:10:3" + "src": "318:10:4" } ], "contractDependencies": [ - 39, - 580, - 971, - 1343, - 1359 + 63, + 652, + 1100, + 1472, + 1619 ], "contractKind": "contract", "documentation": "@title Gnosis Safe Team Edition - A multisignature wallet with support for confirmations.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 554, + "id": 626, "linearizedBaseContracts": [ - 554, - 39, - 1343, - 971, - 580, - 1359 + 626, + 63, + 1472, + 1100, + 652, + 1619 ], "name": "GnosisSafeTeamEdition", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 335, + "id": 408, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 554, - "src": "336:56:3", + "scope": 626, + "src": "336:56:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3673,10 +3660,10 @@ "typeString": "string" }, "typeName": { - "id": 333, + "id": 406, "name": "string", "nodeType": "ElementaryTypeName", - "src": "336:6:3", + "src": "336:6:4", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3685,14 +3672,14 @@ "value": { "argumentTypes": null, "hexValue": "476e6f7369732053616665205465616d2045646974696f6e", - "id": 334, + "id": 407, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "366:26:3", + "src": "366:26:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_69b1cb372bb47730ba653a0e87363aa6de8337d13ed5852e6fe3ba4e2004a81e", @@ -3704,11 +3691,11 @@ }, { "constant": true, - "id": 338, + "id": 411, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 554, - "src": "398:40:3", + "scope": 626, + "src": "398:40:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3716,10 +3703,10 @@ "typeString": "string" }, "typeName": { - "id": 336, + "id": 409, "name": "string", "nodeType": "ElementaryTypeName", - "src": "398:6:3", + "src": "398:6:4", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3728,14 +3715,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 337, + "id": 410, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "431:7:3", + "src": "431:7:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -3747,11 +3734,11 @@ }, { "constant": false, - "id": 342, + "id": 415, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 554, - "src": "536:43:3", + "scope": 626, + "src": "536:43:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3759,28 +3746,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 341, + "id": 414, "keyType": { - "id": 339, + "id": 412, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "545:7:3", + "src": "545:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "536:25:3", + "src": "536:25:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 340, + "id": 413, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "556:4:3", + "src": "556:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3792,61 +3779,61 @@ }, { "constant": false, - "id": 348, + "id": 421, "name": "isApproved", "nodeType": "VariableDeclaration", - "scope": 554, - "src": "682:63:3", + "scope": 626, + "src": "767:66:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(bytes32 => mapping(address => uint256))" }, "typeName": { - "id": 347, + "id": 420, "keyType": { - "id": 343, + "id": 416, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "691:7:3", + "src": "776:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "682:45:3", + "src": "767:48:4", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(bytes32 => mapping(address => uint256))" }, "valueType": { - "id": 346, + "id": 419, "keyType": { - "id": 344, + "id": 417, "name": "address", "nodeType": "ElementaryTypeName", - "src": "710:7:3", + "src": "795:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "702:24:3", + "src": "787:27:4", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 345, - "name": "bool", + "id": 418, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "721:4:3", + "src": "806:7:4", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } } @@ -3856,9 +3843,9 @@ }, { "body": { - "id": 406, + "id": 469, "nodeType": "Block", - "src": "1366:504:3", + "src": "1454:380:4", "statements": [ { "expression": { @@ -3870,7 +3857,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 367, + "id": 440, "isConstant": false, "isLValue": false, "isPure": false, @@ -3879,34 +3866,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 362, + "id": 435, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "1454:6:3", + "referencedDeclaration": 1114, + "src": "1542:6:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 365, + "id": 438, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 363, + "id": 436, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "1461:3:3", + "referencedDeclaration": 2598, + "src": "1549:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 364, + "id": 437, "isConstant": false, "isLValue": false, "isPure": false, @@ -3914,7 +3901,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1461:10:3", + "src": "1549:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3925,7 +3912,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1454:18:3", + "src": "1542:18:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3936,14 +3923,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 366, + "id": 439, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1476:1:3", + "src": "1564:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3951,7 +3938,7 @@ }, "value": "0" }, - "src": "1454:23:3", + "src": "1542:23:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3965,21 +3952,21 @@ "typeString": "bool" } ], - "id": 361, + "id": 434, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1446:7:3", + "referencedDeclaration": 2601, + "src": "1534:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 368, + "id": 441, "isConstant": false, "isLValue": false, "isPure": false, @@ -3987,28 +3974,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1446:32:3", + "src": "1534:32:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 369, + "id": 442, "nodeType": "ExpressionStatement", - "src": "1446:32:3" + "src": "1534:32:4" }, { "assignments": [ - 371 + 444 ], "declarations": [ { "constant": false, - "id": 371, + "id": 444, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 407, - "src": "1560:23:3", + "scope": 470, + "src": "1576:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4016,10 +4003,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 370, + "id": 443, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1560:7:3", + "src": "1576:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4029,18 +4016,18 @@ "visibility": "internal" } ], - "id": 379, + "id": 452, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 373, + "id": 446, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 350, - "src": "1605:2:3", + "referencedDeclaration": 423, + "src": "1621:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4048,12 +4035,12 @@ }, { "argumentTypes": null, - "id": 374, + "id": 447, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 352, - "src": "1609:5:3", + "referencedDeclaration": 425, + "src": "1625:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4061,12 +4048,12 @@ }, { "argumentTypes": null, - "id": 375, + "id": 448, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 354, - "src": "1616:4:3", + "referencedDeclaration": 427, + "src": "1632:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -4074,25 +4061,25 @@ }, { "argumentTypes": null, - "id": 376, + "id": 449, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 356, - "src": "1622:9:3", + "referencedDeclaration": 429, + "src": "1638:9:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 377, + "id": 450, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 358, - "src": "1633:5:3", + "referencedDeclaration": 431, + "src": "1649:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4114,7 +4101,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -4122,18 +4109,18 @@ "typeString": "uint256" } ], - "id": 372, + "id": 445, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 553, - "src": "1586:18:3", + "referencedDeclaration": 625, + "src": "1602:18:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" } }, - "id": 378, + "id": 451, "isConstant": false, "isLValue": false, "isPure": false, @@ -4141,14 +4128,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1586:53:3", + "src": "1602:53:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "1560:79:3" + "src": "1576:79:4" }, { "expression": { @@ -4156,7 +4143,7 @@ "arguments": [ { "argumentTypes": null, - "id": 384, + "id": 457, "isConstant": false, "isLValue": false, "isPure": false, @@ -4164,31 +4151,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1657:28:3", + "src": "1745:28:4", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 381, + "id": 454, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "1658:10:3", + "referencedDeclaration": 415, + "src": "1746:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 383, + "id": 456, "indexExpression": { "argumentTypes": null, - "id": 382, + "id": 455, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "1669:15:3", + "referencedDeclaration": 444, + "src": "1757:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4199,7 +4186,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1658:27:3", + "src": "1746:27:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4218,21 +4205,21 @@ "typeString": "bool" } ], - "id": 380, + "id": 453, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1649:7:3", + "referencedDeclaration": 2601, + "src": "1737:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 385, + "id": 458, "isConstant": false, "isLValue": false, "isPure": false, @@ -4240,163 +4227,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1649:37:3", + "src": "1737:37:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 386, + "id": 459, "nodeType": "ExpressionStatement", - "src": "1649:37:3" + "src": "1737:37:4" }, { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1766:40:3", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 388, - "name": "isApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "1767:10:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - } - }, - "id": 390, - "indexExpression": { - "argumentTypes": null, - "id": 389, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "1778:15:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1767:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 393, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 391, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "1795:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1795:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1767:39:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 387, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2399, - 2400 - ], - "referencedDeclaration": 2399, - "src": "1758:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 395, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1758:49:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 396, - "nodeType": "ExpressionStatement", - "src": "1758:49:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 404, + "id": 467, "isConstant": false, "isLValue": false, "isPure": false, @@ -4407,26 +4251,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 397, + "id": 460, "name": "isApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "1817:10:3", + "referencedDeclaration": 421, + "src": "1784:10:4", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" + "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(bytes32 => mapping(address => uint256))" } }, - "id": 401, + "id": 464, "indexExpression": { "argumentTypes": null, - "id": 398, + "id": 461, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "1828:15:3", + "referencedDeclaration": 444, + "src": "1795:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4437,29 +4281,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1817:27:3", + "src": "1784:27:4", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" } }, - "id": 402, + "id": 465, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 399, + "id": 462, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "1845:3:3", + "referencedDeclaration": 2598, + "src": "1812:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 400, + "id": 463, "isConstant": false, "isLValue": false, "isPure": false, @@ -4467,7 +4311,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1845:10:3", + "src": "1812:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4478,46 +4322,46 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1817:39:3", + "src": "1784:39:4", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "hexValue": "74727565", - "id": 403, + "hexValue": "31", + "id": 466, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "bool", + "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1859:4:3", + "src": "1826:1:4", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" }, - "value": "true" + "value": "1" }, - "src": "1817:46:3", + "src": "1784:43:4", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 405, + "id": 468, "nodeType": "ExpressionStatement", - "src": "1817:46:3" + "src": "1784:43:4" } ] }, "documentation": "@dev Allows to confirm a Safe transaction with a regular transaction.\n This can only be done from an owner address.\n @param to Destination address 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 nonce Nonce used for this Safe transaction.", - "id": 407, + "id": 470, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4525,16 +4369,16 @@ "name": "approveTransactionWithParameters", "nodeType": "FunctionDefinition", "parameters": { - "id": 359, + "id": 432, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 350, + "id": 423, "name": "to", "nodeType": "VariableDeclaration", - "scope": 407, - "src": "1226:10:3", + "scope": 470, + "src": "1314:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4542,10 +4386,10 @@ "typeString": "address" }, "typeName": { - "id": 349, + "id": 422, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1226:7:3", + "src": "1314:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4556,11 +4400,11 @@ }, { "constant": false, - "id": 352, + "id": 425, "name": "value", "nodeType": "VariableDeclaration", - "scope": 407, - "src": "1247:13:3", + "scope": 470, + "src": "1335:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4568,10 +4412,10 @@ "typeString": "uint256" }, "typeName": { - "id": 351, + "id": 424, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1247:7:3", + "src": "1335:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4582,11 +4426,11 @@ }, { "constant": false, - "id": 354, + "id": 427, "name": "data", "nodeType": "VariableDeclaration", - "scope": 407, - "src": "1271:10:3", + "scope": 470, + "src": "1359:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4594,10 +4438,10 @@ "typeString": "bytes" }, "typeName": { - "id": 353, + "id": 426, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1271:5:3", + "src": "1359:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4608,26 +4452,26 @@ }, { "constant": false, - "id": 356, + "id": 429, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 407, - "src": "1292:24:3", + "scope": 470, + "src": "1380:24:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 355, + "id": 428, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "1292:14:3", + "referencedDeclaration": 29, + "src": "1380:14:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -4636,11 +4480,11 @@ }, { "constant": false, - "id": 358, + "id": 431, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 407, - "src": "1327:13:3", + "scope": 470, + "src": "1415:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4648,10 +4492,10 @@ "typeString": "uint256" }, "typeName": { - "id": 357, + "id": 430, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1327:7:3", + "src": "1415:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4661,39 +4505,39 @@ "visibility": "internal" } ], - "src": "1216:130:3" + "src": "1304:130:4" }, "payable": false, "returnParameters": { - "id": 360, + "id": 433, "nodeType": "ParameterList", "parameters": [], - "src": "1366:0:3" + "src": "1454:0:4" }, - "scope": 554, - "src": "1175:695:3", + "scope": 626, + "src": "1263:571:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 458, + "id": 521, "nodeType": "Block", - "src": "2496:358:3", + "src": "2460:358:4", "statements": [ { "assignments": [ - 421 + 484 ], "declarations": [ { "constant": false, - "id": 421, + "id": 484, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 459, - "src": "2506:23:3", + "scope": 522, + "src": "2470:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4701,10 +4545,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 420, + "id": 483, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2506:7:3", + "src": "2470:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4714,18 +4558,18 @@ "visibility": "internal" } ], - "id": 429, + "id": 492, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 423, + "id": 486, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "2551:2:3", + "referencedDeclaration": 472, + "src": "2515:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4733,12 +4577,12 @@ }, { "argumentTypes": null, - "id": 424, + "id": 487, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "2555:5:3", + "referencedDeclaration": 474, + "src": "2519:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4746,12 +4590,12 @@ }, { "argumentTypes": null, - "id": 425, + "id": 488, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 413, - "src": "2562:4:3", + "referencedDeclaration": 476, + "src": "2526:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -4759,25 +4603,25 @@ }, { "argumentTypes": null, - "id": 426, + "id": 489, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "2568:9:3", + "referencedDeclaration": 478, + "src": "2532:9:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 427, + "id": 490, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 417, - "src": "2579:5:3", + "referencedDeclaration": 480, + "src": "2543:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4799,7 +4643,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -4807,18 +4651,18 @@ "typeString": "uint256" } ], - "id": 422, + "id": 485, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 553, - "src": "2532:18:3", + "referencedDeclaration": 625, + "src": "2496:18:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" } }, - "id": 428, + "id": 491, "isConstant": false, "isLValue": false, "isPure": false, @@ -4826,14 +4670,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2532:53:3", + "src": "2496:53:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2506:79:3" + "src": "2470:79:4" }, { "expression": { @@ -4841,7 +4685,7 @@ "arguments": [ { "argumentTypes": null, - "id": 434, + "id": 497, "isConstant": false, "isLValue": false, "isPure": false, @@ -4849,31 +4693,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2603:28:3", + "src": "2567:28:4", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 431, + "id": 494, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "2604:10:3", + "referencedDeclaration": 415, + "src": "2568:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 433, + "id": 496, "indexExpression": { "argumentTypes": null, - "id": 432, + "id": 495, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "2615:15:3", + "referencedDeclaration": 484, + "src": "2579:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4884,7 +4728,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2604:27:3", + "src": "2568:27:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4903,21 +4747,21 @@ "typeString": "bool" } ], - "id": 430, + "id": 493, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2595:7:3", + "referencedDeclaration": 2601, + "src": "2559:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 435, + "id": 498, "isConstant": false, "isLValue": false, "isPure": false, @@ -4925,15 +4769,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2595:37:3", + "src": "2559:37:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 436, + "id": 499, "nodeType": "ExpressionStatement", - "src": "2595:37:3" + "src": "2559:37:4" }, { "expression": { @@ -4941,12 +4785,12 @@ "arguments": [ { "argumentTypes": null, - "id": 438, + "id": 501, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "2669:15:3", + "referencedDeclaration": 484, + "src": "2633:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4960,18 +4804,18 @@ "typeString": "bytes32" } ], - "id": 437, + "id": 500, "name": "checkAndClearConfirmations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "2642:26:3", + "referencedDeclaration": 591, + "src": "2606:26:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 439, + "id": 502, "isConstant": false, "isLValue": false, "isPure": false, @@ -4979,20 +4823,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2642:43:3", + "src": "2606:43:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 440, + "id": 503, "nodeType": "ExpressionStatement", - "src": "2642:43:3" + "src": "2606:43:4" }, { "expression": { "argumentTypes": null, - "id": 445, + "id": 508, "isConstant": false, "isLValue": false, "isPure": false, @@ -5001,26 +4845,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 441, + "id": 504, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 342, - "src": "2748:10:3", + "referencedDeclaration": 415, + "src": "2712:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 443, + "id": 506, "indexExpression": { "argumentTypes": null, - "id": 442, + "id": 505, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 421, - "src": "2759:15:3", + "referencedDeclaration": 484, + "src": "2723:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5031,7 +4875,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2748:27:3", + "src": "2712:27:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5042,14 +4886,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 444, + "id": 507, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2778:4:3", + "src": "2742:4:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5057,15 +4901,15 @@ }, "value": "true" }, - "src": "2748:34:3", + "src": "2712:34:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 446, + "id": 509, "nodeType": "ExpressionStatement", - "src": "2748:34:3" + "src": "2712:34:4" }, { "expression": { @@ -5076,12 +4920,12 @@ "arguments": [ { "argumentTypes": null, - "id": 449, + "id": 512, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 409, - "src": "2808:2:3", + "referencedDeclaration": 472, + "src": "2772:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5089,12 +4933,12 @@ }, { "argumentTypes": null, - "id": 450, + "id": 513, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 411, - "src": "2812:5:3", + "referencedDeclaration": 474, + "src": "2776:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5102,12 +4946,12 @@ }, { "argumentTypes": null, - "id": 451, + "id": 514, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 413, - "src": "2819:4:3", + "referencedDeclaration": 476, + "src": "2783:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5115,14 +4959,14 @@ }, { "argumentTypes": null, - "id": 452, + "id": 515, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 415, - "src": "2825:9:3", + "referencedDeclaration": 478, + "src": "2789:9:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -5131,18 +4975,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 453, + "id": 516, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "2836:7:3", + "referencedDeclaration": 2591, + "src": "2800:7:4", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 454, + "id": 517, "isConstant": false, "isLValue": false, "isPure": false, @@ -5150,7 +4994,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2836:9:3", + "src": "2800:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5172,7 +5016,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -5180,18 +5024,18 @@ "typeString": "uint256" } ], - "id": 448, + "id": 511, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 860, - "src": "2800:7:3", + "referencedDeclaration": 989, + "src": "2764:7:4", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" } }, - "id": 455, + "id": 518, "isConstant": false, "isLValue": false, "isPure": false, @@ -5199,7 +5043,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2800:46:3", + "src": "2764:46:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5213,906 +5057,15 @@ "typeString": "bool" } ], - "id": 447, + "id": 510, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2792:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 456, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2792:55:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 457, - "nodeType": "ExpressionStatement", - "src": "2792:55:3" - } - ] - }, - "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners. If the sender is an owner this is automatically confirmed.\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 nonce Nonce used for this Safe transaction.", - "id": 459, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "execTransactionIfApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 418, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 409, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 459, - "src": "2356:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 408, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2356:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 411, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 459, - "src": "2377:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 410, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2377:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 413, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 459, - "src": "2401:10:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 412, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2401:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 415, - "name": "operation", - "nodeType": "VariableDeclaration", - "scope": 459, - "src": "2422:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - }, - "typeName": { - "contractScope": null, - "id": 414, - "name": "Enum.Operation", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "2422:14:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 417, - "name": "nonce", - "nodeType": "VariableDeclaration", - "scope": 459, - "src": "2457:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 416, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2457:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2346:130:3" - }, - "payable": false, - "returnParameters": { - "id": 419, - "nodeType": "ParameterList", - "parameters": [], - "src": "2496:0:3" - }, - "scope": 554, - "src": "2312:542:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 521, - "nodeType": "Block", - "src": "2942:609:3", - "statements": [ - { - "assignments": [ - 465 - ], - "declarations": [ - { - "constant": false, - "id": 465, - "name": "confirmations", - "nodeType": "VariableDeclaration", - "scope": 522, - "src": "2952:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 464, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2952:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 467, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 466, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2976:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "2952:25:3" - }, - { - "assignments": [ - 469 - ], - "declarations": [ - { - "constant": false, - "id": 469, - "name": "currentOwner", - "nodeType": "VariableDeclaration", - "scope": 522, - "src": "3029:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 468, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3029:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 473, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 470, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "3052:6:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 472, - "indexExpression": { - "argumentTypes": null, - "id": 471, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3059:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3052:23:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3029:46:3" - }, - { - "body": { - "id": 513, - "nodeType": "Block", - "src": "3125:375:3", - "statements": [ - { - "assignments": [ - 478 - ], - "declarations": [ - { - "constant": false, - "id": 478, - "name": "ownerConfirmed", - "nodeType": "VariableDeclaration", - "scope": 522, - "src": "3139:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 477, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3139:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 484, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 479, - "name": "isApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "3161:10:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - } - }, - "id": 481, - "indexExpression": { - "argumentTypes": null, - "id": 480, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 461, - "src": "3172:15:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3161:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 483, - "indexExpression": { - "argumentTypes": null, - "id": 482, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 469, - "src": "3189:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3161:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3139:63:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 485, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 469, - "src": "3219:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 486, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "3235:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3235:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3219:26:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "id": 489, - "name": "ownerConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "3249:14:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3219:44:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 506, - "nodeType": "IfStatement", - "src": "3216:225:3", - "trueBody": { - "id": 505, - "nodeType": "Block", - "src": "3265:176:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 491, - "name": "ownerConfirmed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "3287:14:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 501, - "nodeType": "IfStatement", - "src": "3283:110:3", - "trueBody": { - "id": 500, - "nodeType": "Block", - "src": "3303:90:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 492, - "name": "isApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "3325:10:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(bytes32 => mapping(address => bool))" - } - }, - "id": 495, - "indexExpression": { - "argumentTypes": null, - "id": 493, - "name": "transactionHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 461, - "src": "3336:15:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3325:27:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 496, - "indexExpression": { - "argumentTypes": null, - "id": 494, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 469, - "src": "3353:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3325:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3369:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "3325:49:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 499, - "nodeType": "ExpressionStatement", - "src": "3325:49:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3410:16:3", - "subExpression": { - "argumentTypes": null, - "id": 502, - "name": "confirmations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 465, - "src": "3410:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 504, - "nodeType": "ExpressionStatement", - "src": "3410:16:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 511, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 507, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 469, - "src": "3454:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 508, - "name": "owners", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "3469:6:3", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 510, - "indexExpression": { - "argumentTypes": null, - "id": 509, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 469, - "src": "3476:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3469:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3454:35:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 512, - "nodeType": "ExpressionStatement", - "src": "3454:35:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 474, - "name": "currentOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 469, - "src": "3092:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 475, - "name": "SENTINEL_OWNERS", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3108:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3092:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 514, - "nodeType": "WhileStatement", - "src": "3085:415:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 516, - "name": "confirmations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 465, - "src": "3517:13:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 517, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "3534:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "3517:26:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 515, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2399, - 2400 - ], - "referencedDeclaration": 2399, - "src": "3509:7:3", + "referencedDeclaration": 2601, + "src": "2756:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" @@ -6126,7 +5079,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3509:35:3", + "src": "2756:55:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" @@ -6134,351 +5087,29 @@ }, "id": 520, "nodeType": "ExpressionStatement", - "src": "3509:35:3" + "src": "2756:55:4" } ] }, - "documentation": null, + "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners. If the sender is an owner this is automatically confirmed.\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 nonce Nonce used for this Safe transaction.", "id": 522, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [], - "name": "checkAndClearConfirmations", + "name": "execTransactionIfApproved", "nodeType": "FunctionDefinition", "parameters": { - "id": 462, + "id": 481, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 461, - "name": "transactionHash", - "nodeType": "VariableDeclaration", - "scope": 522, - "src": "2896:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 460, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2896:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2895:25:3" - }, - "payable": false, - "returnParameters": { - "id": 463, - "nodeType": "ParameterList", - "parameters": [], - "src": "2942:0:3" - }, - "scope": 554, - "src": "2860:691:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 552, - "nodeType": "Block", - "src": "4045:95:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30783139", - "id": 539, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4077:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - }, - "value": "0x19" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_25_by_1", - "typeString": "int_const 25" - } - ], - "id": 538, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4072:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 540, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4072:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4089:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4084:4:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" - }, - "id": 543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4084:7:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 544, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2425, - "src": "4093:4:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$554", - "typeString": "contract GnosisSafeTeamEdition" - } - }, - { - "argumentTypes": null, - "id": 545, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "4099:2:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 546, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 526, - "src": "4103:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 547, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 528, - "src": "4110:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 548, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 530, - "src": "4116:9:3", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 549, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 532, - "src": "4127:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$554", - "typeString": "contract GnosisSafeTeamEdition" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 537, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2390, - "src": "4062:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", - "typeString": "function () pure returns (bytes32)" - } - }, - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4062:71:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 536, - "id": 551, - "nodeType": "Return", - "src": "4055:78:3" - } - ] - }, - "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 nonce Transaction nonce.\n @return Transaction hash.", - "id": 553, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "getTransactionHash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 524, + "id": 472, "name": "to", "nodeType": "VariableDeclaration", - "scope": 553, - "src": "3866:10:3", + "scope": 522, + "src": "2320:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6486,10 +5117,10 @@ "typeString": "address" }, "typeName": { - "id": 523, + "id": 471, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3866:7:3", + "src": "2320:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6500,11 +5131,11 @@ }, { "constant": false, - "id": 526, + "id": 474, "name": "value", "nodeType": "VariableDeclaration", - "scope": 553, - "src": "3887:13:3", + "scope": 522, + "src": "2341:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6512,10 +5143,10 @@ "typeString": "uint256" }, "typeName": { - "id": 525, + "id": 473, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3887:7:3", + "src": "2341:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6526,11 +5157,11 @@ }, { "constant": false, - "id": 528, + "id": 476, "name": "data", "nodeType": "VariableDeclaration", - "scope": 553, - "src": "3911:10:3", + "scope": 522, + "src": "2365:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6538,10 +5169,10 @@ "typeString": "bytes" }, "typeName": { - "id": 527, + "id": 475, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3911:5:3", + "src": "2365:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6552,26 +5183,26 @@ }, { "constant": false, - "id": 530, + "id": 478, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 553, - "src": "3932:24:3", + "scope": 522, + "src": "2386:24:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 529, + "id": 477, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "3932:14:3", + "referencedDeclaration": 29, + "src": "2386:14:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -6580,11 +5211,11 @@ }, { "constant": false, - "id": 532, + "id": 480, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 553, - "src": "3967:13:3", + "scope": 522, + "src": "2421:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6592,10 +5223,10 @@ "typeString": "uint256" }, "typeName": { - "id": 531, + "id": 479, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3967:7:3", + "src": "2421:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6605,20 +5236,849 @@ "visibility": "internal" } ], - "src": "3856:130:3" + "src": "2310:130:4" }, "payable": false, "returnParameters": { - "id": 536, + "id": 482, + "nodeType": "ParameterList", + "parameters": [], + "src": "2460:0:4" + }, + "scope": 626, + "src": "2276:542:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 590, + "nodeType": "Block", + "src": "2906:651:4", + "statements": [ + { + "assignments": [ + 530 + ], + "declarations": [ + { + "constant": false, + "id": 530, + "name": "approvals", + "nodeType": "VariableDeclaration", + "scope": 591, + "src": "2916:37:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 529, + "keyType": { + "id": 527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2924:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2916:27:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 528, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2935:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 534, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 531, + "name": "isApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 421, + "src": "2956:10:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(bytes32 => mapping(address => uint256))" + } + }, + "id": 533, + "indexExpression": { + "argumentTypes": null, + "id": 532, + "name": "transactionHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 524, + "src": "2967:15:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2956:27:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2916:67:4" + }, + { + "assignments": [ + 536 + ], + "declarations": [ + { + "constant": false, + "id": 536, + "name": "confirmations", + "nodeType": "VariableDeclaration", + "scope": 591, + "src": "2993:21:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 535, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2993:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 538, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3017:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "2993:25:4" + }, + { + "assignments": [ + 540 + ], + "declarations": [ + { + "constant": false, + "id": 540, + "name": "currentOwner", + "nodeType": "VariableDeclaration", + "scope": 591, + "src": "3070:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3070:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 544, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 541, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "3093:6:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 543, + "indexExpression": { + "argumentTypes": null, + "id": 542, + "name": "SENTINEL_OWNERS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1110, + "src": "3100:15:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3093:23:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3070:46:4" + }, + { + "body": { + "id": 582, + "nodeType": "Block", + "src": "3166:340:4", + "statements": [ + { + "assignments": [ + 549 + ], + "declarations": [ + { + "constant": false, + "id": 549, + "name": "ownerConfirmed", + "nodeType": "VariableDeclaration", + "scope": 591, + "src": "3180:19:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 548, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3180:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 555, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 550, + "name": "approvals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 530, + "src": "3202:9:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 552, + "indexExpression": { + "argumentTypes": null, + "id": 551, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3212:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3202:23:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3229:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3202:28:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3180:50:4" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 556, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3247:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 557, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2598, + "src": "3263:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3263:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3247:26:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "id": 560, + "name": "ownerConfirmed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "3277:14:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3247:44:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 575, + "nodeType": "IfStatement", + "src": "3244:203:4", + "trueBody": { + "id": 574, + "nodeType": "Block", + "src": "3293:154:4", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 562, + "name": "ownerConfirmed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 549, + "src": "3315:14:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 570, + "nodeType": "IfStatement", + "src": "3311:88:4", + "trueBody": { + "id": 569, + "nodeType": "Block", + "src": "3331:68:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 563, + "name": "approvals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 530, + "src": "3353:9:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 565, + "indexExpression": { + "argumentTypes": null, + "id": 564, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3363:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3353:23:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3379:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3353:27:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 568, + "nodeType": "ExpressionStatement", + "src": "3353:27:4" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3416:16:4", + "subExpression": { + "argumentTypes": null, + "id": 571, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "3416:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 573, + "nodeType": "ExpressionStatement", + "src": "3416:16:4" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 576, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3460:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 577, + "name": "owners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "3475:6:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 579, + "indexExpression": { + "argumentTypes": null, + "id": 578, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3482:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3475:20:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3460:35:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 581, + "nodeType": "ExpressionStatement", + "src": "3460:35:4" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 545, + "name": "currentOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "3133:12:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 546, + "name": "SENTINEL_OWNERS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1110, + "src": "3149:15:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3133:31:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 583, + "nodeType": "WhileStatement", + "src": "3126:380:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 585, + "name": "confirmations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "3523:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 586, + "name": "threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1118, + "src": "3540:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3523:26:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 584, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2601, + 2602 + ], + "referencedDeclaration": 2601, + "src": "3515:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3515:35:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 589, + "nodeType": "ExpressionStatement", + "src": "3515:35:4" + } + ] + }, + "documentation": null, + "id": 591, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "checkAndClearConfirmations", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 525, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 535, - "name": "", + "id": 524, + "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 553, - "src": "4032:7:3", + "scope": 591, + "src": "2860:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6626,10 +6086,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 534, + "id": 523, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4032:7:3", + "src": "2860:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6639,63 +6099,559 @@ "visibility": "internal" } ], - "src": "4031:9:3" + "src": "2859:25:4" }, - "scope": 554, - "src": "3829:311:3", + "payable": false, + "returnParameters": { + "id": 526, + "nodeType": "ParameterList", + "parameters": [], + "src": "2906:0:4" + }, + "scope": 626, + "src": "2824:733:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 624, + "nodeType": "Block", + "src": "4051:113:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30783139", + "id": 610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4100:4:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + }, + "value": "0x19" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + } + ], + "id": 609, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4095:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 611, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4095:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4112:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4107:4:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4107:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "id": 615, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2633, + "src": "4116:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$626", + "typeString": "contract GnosisSafeTeamEdition" + } + }, + { + "argumentTypes": null, + "id": 616, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 593, + "src": "4122:2:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 617, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 595, + "src": "4126:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 618, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 597, + "src": "4133:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 619, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "4139:9:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "id": 620, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 601, + "src": "4150:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$626", + "typeString": "contract GnosisSafeTeamEdition" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 607, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2585, + "src": "4078:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4078:16:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4078:78:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 606, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2592, + "src": "4068:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4068:89:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 605, + "id": 623, + "nodeType": "Return", + "src": "4061:96:4" + } + ] + }, + "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 nonce Transaction nonce.\n @return Transaction hash.", + "id": 625, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": true, + "modifiers": [], + "name": "getTransactionHash", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 593, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "3872:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3872:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "3893:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3893:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 597, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "3917:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 596, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3917:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 599, + "name": "operation", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "3938:24:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + }, + "typeName": { + "contractScope": null, + "id": 598, + "name": "Enum.Operation", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 29, + "src": "3938:14:4", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 601, + "name": "nonce", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "3973:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3973:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3862:130:4" + }, + "payable": false, + "returnParameters": { + "id": 605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 604, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "4038:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 603, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4038:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4037:9:4" + }, + "scope": 626, + "src": "3835:329:4", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 555, - "src": "272:3870:3" + "scope": 627, + "src": "272:3894:4" } ], - "src": "0:4143:3" + "src": "0:4167:4" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { "4": { "events": {}, "links": {}, - "address": "0x2dd472fa9a922d380282775d1b0a33b2ce62d094", - "transactionHash": "0x680b211f800d9cfe49c7f9d9e0259032d19ff74c43e7f44e16f14b1220ca7b89" - }, - "1525950336085": { - "events": {}, - "links": {}, - "address": "0xd16506c40cb044bf78552d9bea796c9d98fa0a45", - "transactionHash": "0x782ef1b28e30afdcb711e7119c7bc794bbd7f42356ea5a68072b8f59400b05e3" - }, - "1526283540628": { - "events": {}, - "links": {}, - "address": "0xaadc387a6c96744064754aa1f2391cbe1bb55970", - "transactionHash": "0x782ef1b28e30afdcb711e7119c7bc794bbd7f42356ea5a68072b8f59400b05e3" - }, - "1526478212260": { - "events": {}, - "links": {}, - "address": "0xac64aef07af9275b66107f36039a47592c6507f8", - "transactionHash": "0x8004ae7f9ec8f459da793c0882711d8488c50b973f4bdddb9df31cade42b2cd3" - }, - "1526973574996": { - "events": {}, - "links": {}, - "address": "0x592b6c1e500c567c0dd01c2a1dd6b84db9c41ace", - "transactionHash": "0x8004ae7f9ec8f459da793c0882711d8488c50b973f4bdddb9df31cade42b2cd3" + "address": "0x2c4aed3a457a6c22b69e3c265e8ea2f1c63c3a22", + "transactionHash": "0xadc1acb04257fdd33996d12fb7aacca9dd0bbd4791091cadba4feb42d58d84b7" }, "1527316019334": { "events": {}, "links": {}, - "address": "0x29978b66e148e3e61ccff27e1f68784ed491fd82", - "transactionHash": "0x8004ae7f9ec8f459da793c0882711d8488c50b973f4bdddb9df31cade42b2cd3" + "address": "0x8a0005965449a50c878f81366c85b1b8ed684cd9", + "transactionHash": "0xb4a3d52a904d829e91e4502b2b0659cbfd5a90dd2af4c90f9d488e4e3f3b47d2" + }, + "1527420696956": { + "events": {}, + "links": {}, + "address": "0x60c424968c3dc4ff9130b80591c0b97dda690b66", + "transactionHash": "0x304ee33d69762c466c689bbea9fcce594bfafd1cbad5482e75be43ad24ca200f" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-26T06:28:28.342Z" + "updatedAt": "2018-05-27T11:31:46.251Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/MasterCopy.json b/safe-contracts/build/contracts/MasterCopy.json index 75b6f868..5d41f32a 100644 --- a/safe-contracts/build/contracts/MasterCopy.json +++ b/safe-contracts/build/contracts/MasterCopy.json @@ -16,40 +16,40 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610158806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156100c357600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156100e957600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582073cd5ab8858f9d67e5e09748f71ecf939357d0d1230776e9f935b1ef5d664eb00029", - "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156100c357600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156100e957600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a7230582073cd5ab8858f9d67e5e09748f71ecf939357d0d1230776e9f935b1ef5d664eb00029", - "sourceMap": "203:633:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:633:4;;;;;;;", - "deployedSourceMap": "203:633:4:-;;;;;;;;;;;;;;;;;;;;;;;;626:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;791:1:4;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o", - "source": "pragma solidity 0.4.23;\nimport \"./SelfAuthorized.sol\";\n\n\n/// @title MasterCopy - Base for master copy contracts (should always be first super contract)\n/// @author Richard Meissner - \ncontract MasterCopy is SelfAuthorized {\n // masterCopy always needs to be first declared variable, to ensure that it is at the same location as in the Proxy contract.\n // It should also always be ensured that the address is stored alone (uses a full word)\n address masterCopy;\n\n /// @dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n /// @param _masterCopy New contract address.\n function changeMasterCopy(address _masterCopy)\n public\n authorized\n {\n // Master copy address cannot be null.\n require(_masterCopy != 0);\n masterCopy = _masterCopy;\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50610158806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156100c357600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156100e957600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820af102433b8ccec4f2f22acc2112a110b3e5e8a3a9a6410aebbe25fc9281607660029", + "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156100c357600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156100e957600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820af102433b8ccec4f2f22acc2112a110b3e5e8a3a9a6410aebbe25fc9281607660029", + "sourceMap": "203:633:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:633:5;;;;;;;", + "deployedSourceMap": "203:633:5:-;;;;;;;;;;;;;;;;;;;;;;;;626:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;791:1:5;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./SelfAuthorized.sol\";\n\n\n/// @title MasterCopy - Base for master copy contracts (should always be first super contract)\n/// @author Richard Meissner - \ncontract MasterCopy is SelfAuthorized {\n // masterCopy always needs to be first declared variable, to ensure that it is at the same location as in the Proxy contract.\n // It should also always be ensured that the address is stored alone (uses a full word)\n address masterCopy;\n\n /// @dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n /// @param _masterCopy New contract address.\n function changeMasterCopy(address _masterCopy)\n public\n authorized\n {\n // Master copy address cannot be null.\n require(_masterCopy != 0);\n masterCopy = _masterCopy;\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "exportedSymbols": { "MasterCopy": [ - 580 + 652 ] }, - "id": 581, + "id": 653, "nodeType": "SourceUnit", "nodes": [ { - "id": 556, + "id": 628, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:4" + "src": "0:23:5" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", "file": "./SelfAuthorized.sol", - "id": 557, + "id": 629, "nodeType": "ImportDirective", - "scope": 581, - "sourceUnit": 1360, - "src": "24:30:4", + "scope": 653, + "sourceUnit": 1620, + "src": "24:30:5", "symbolAliases": [], "unitAlias": "" }, @@ -59,42 +59,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 558, + "id": 630, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1359, - "src": "226:14:4", + "referencedDeclaration": 1619, + "src": "226:14:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1359", + "typeIdentifier": "t_contract$_SelfAuthorized_$1619", "typeString": "contract SelfAuthorized" } }, - "id": 559, + "id": 631, "nodeType": "InheritanceSpecifier", - "src": "226:14:4" + "src": "226:14:5" } ], "contractDependencies": [ - 1359 + 1619 ], "contractKind": "contract", "documentation": "@title MasterCopy - Base for master copy contracts (should always be first super contract)\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 580, + "id": 652, "linearizedBaseContracts": [ - 580, - 1359 + 652, + 1619 ], "name": "MasterCopy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 561, + "id": 633, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 580, - "src": "465:18:4", + "scope": 652, + "src": "465:18:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -102,10 +102,10 @@ "typeString": "address" }, "typeName": { - "id": 560, + "id": 632, "name": "address", "nodeType": "ElementaryTypeName", - "src": "465:7:4", + "src": "465:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -116,9 +116,9 @@ }, { "body": { - "id": 578, + "id": 650, "nodeType": "Block", - "src": "711:123:4", + "src": "711:123:5", "statements": [ { "expression": { @@ -130,19 +130,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 571, + "id": 643, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 569, + "id": 641, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 563, - "src": "776:11:4", + "referencedDeclaration": 635, + "src": "776:11:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -153,14 +153,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 570, + "id": 642, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "791:1:4", + "src": "791:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -168,7 +168,7 @@ }, "value": "0" }, - "src": "776:16:4", + "src": "776:16:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -182,21 +182,21 @@ "typeString": "bool" } ], - "id": 568, + "id": 640, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "768:7:4", + "referencedDeclaration": 2601, + "src": "768:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 572, + "id": 644, "isConstant": false, "isLValue": false, "isPure": false, @@ -204,32 +204,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "768:25:4", + "src": "768:25:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 573, + "id": 645, "nodeType": "ExpressionStatement", - "src": "768:25:4" + "src": "768:25:5" }, { "expression": { "argumentTypes": null, - "id": 576, + "id": 648, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 574, + "id": 646, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 561, - "src": "803:10:4", + "referencedDeclaration": 633, + "src": "803:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -239,68 +239,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 575, + "id": 647, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 563, - "src": "816:11:4", + "referencedDeclaration": 635, + "src": "816:11:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "803:24:4", + "src": "803:24:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 577, + "id": 649, "nodeType": "ExpressionStatement", - "src": "803:24:4" + "src": "803:24:5" } ] }, "documentation": "@dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n @param _masterCopy New contract address.", - "id": 579, + "id": 651, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 566, + "id": 638, "modifierName": { "argumentTypes": null, - "id": 565, + "id": 637, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "696:10:4", + "referencedDeclaration": 1618, + "src": "696:10:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "696:10:4" + "src": "696:10:5" } ], "name": "changeMasterCopy", "nodeType": "FunctionDefinition", "parameters": { - "id": 564, + "id": 636, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 563, + "id": 635, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 579, - "src": "652:19:4", + "scope": 651, + "src": "652:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -308,10 +308,10 @@ "typeString": "address" }, "typeName": { - "id": 562, + "id": 634, "name": "address", "nodeType": "ElementaryTypeName", - "src": "652:7:4", + "src": "652:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -321,56 +321,56 @@ "visibility": "internal" } ], - "src": "651:21:4" + "src": "651:21:5" }, "payable": false, "returnParameters": { - "id": 567, + "id": 639, "nodeType": "ParameterList", "parameters": [], - "src": "711:0:4" + "src": "711:0:5" }, - "scope": 580, - "src": "626:208:4", + "scope": 652, + "src": "626:208:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 581, - "src": "203:633:4" + "scope": 653, + "src": "203:633:5" } ], - "src": "0:837:4" + "src": "0:837:5" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "exportedSymbols": { "MasterCopy": [ - 580 + 652 ] }, - "id": 581, + "id": 653, "nodeType": "SourceUnit", "nodes": [ { - "id": 556, + "id": 628, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:4" + "src": "0:23:5" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", "file": "./SelfAuthorized.sol", - "id": 557, + "id": 629, "nodeType": "ImportDirective", - "scope": 581, - "sourceUnit": 1360, - "src": "24:30:4", + "scope": 653, + "sourceUnit": 1620, + "src": "24:30:5", "symbolAliases": [], "unitAlias": "" }, @@ -380,42 +380,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 558, + "id": 630, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1359, - "src": "226:14:4", + "referencedDeclaration": 1619, + "src": "226:14:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1359", + "typeIdentifier": "t_contract$_SelfAuthorized_$1619", "typeString": "contract SelfAuthorized" } }, - "id": 559, + "id": 631, "nodeType": "InheritanceSpecifier", - "src": "226:14:4" + "src": "226:14:5" } ], "contractDependencies": [ - 1359 + 1619 ], "contractKind": "contract", "documentation": "@title MasterCopy - Base for master copy contracts (should always be first super contract)\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 580, + "id": 652, "linearizedBaseContracts": [ - 580, - 1359 + 652, + 1619 ], "name": "MasterCopy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 561, + "id": 633, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 580, - "src": "465:18:4", + "scope": 652, + "src": "465:18:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -423,10 +423,10 @@ "typeString": "address" }, "typeName": { - "id": 560, + "id": 632, "name": "address", "nodeType": "ElementaryTypeName", - "src": "465:7:4", + "src": "465:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -437,9 +437,9 @@ }, { "body": { - "id": 578, + "id": 650, "nodeType": "Block", - "src": "711:123:4", + "src": "711:123:5", "statements": [ { "expression": { @@ -451,19 +451,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 571, + "id": 643, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 569, + "id": 641, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 563, - "src": "776:11:4", + "referencedDeclaration": 635, + "src": "776:11:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -474,14 +474,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 570, + "id": 642, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "791:1:4", + "src": "791:1:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -489,7 +489,7 @@ }, "value": "0" }, - "src": "776:16:4", + "src": "776:16:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -503,21 +503,21 @@ "typeString": "bool" } ], - "id": 568, + "id": 640, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "768:7:4", + "referencedDeclaration": 2601, + "src": "768:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 572, + "id": 644, "isConstant": false, "isLValue": false, "isPure": false, @@ -525,32 +525,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "768:25:4", + "src": "768:25:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 573, + "id": 645, "nodeType": "ExpressionStatement", - "src": "768:25:4" + "src": "768:25:5" }, { "expression": { "argumentTypes": null, - "id": 576, + "id": 648, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 574, + "id": 646, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 561, - "src": "803:10:4", + "referencedDeclaration": 633, + "src": "803:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -560,68 +560,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 575, + "id": 647, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 563, - "src": "816:11:4", + "referencedDeclaration": 635, + "src": "816:11:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "803:24:4", + "src": "803:24:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 577, + "id": 649, "nodeType": "ExpressionStatement", - "src": "803:24:4" + "src": "803:24:5" } ] }, "documentation": "@dev Allows to upgrade the contract. This can only be done via a Safe transaction.\n @param _masterCopy New contract address.", - "id": 579, + "id": 651, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 566, + "id": 638, "modifierName": { "argumentTypes": null, - "id": 565, + "id": 637, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "696:10:4", + "referencedDeclaration": 1618, + "src": "696:10:5", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "696:10:4" + "src": "696:10:5" } ], "name": "changeMasterCopy", "nodeType": "FunctionDefinition", "parameters": { - "id": 564, + "id": 636, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 563, + "id": 635, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 579, - "src": "652:19:4", + "scope": 651, + "src": "652:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -629,10 +629,10 @@ "typeString": "address" }, "typeName": { - "id": 562, + "id": 634, "name": "address", "nodeType": "ElementaryTypeName", - "src": "652:7:4", + "src": "652:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -642,33 +642,33 @@ "visibility": "internal" } ], - "src": "651:21:4" + "src": "651:21:5" }, "payable": false, "returnParameters": { - "id": 567, + "id": 639, "nodeType": "ParameterList", "parameters": [], - "src": "711:0:4" + "src": "711:0:5" }, - "scope": 580, - "src": "626:208:4", + "scope": 652, + "src": "626:208:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 581, - "src": "203:633:4" + "scope": 653, + "src": "203:633:5" } ], - "src": "0:837:4" + "src": "0:837:5" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-16T10:51:14.746Z" + "updatedAt": "2018-05-27T11:12:45.579Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/Migrations.json b/safe-contracts/build/contracts/Migrations.json index 2f25e4e0..a7baf88b 100644 --- a/safe-contracts/build/contracts/Migrations.json +++ b/safe-contracts/build/contracts/Migrations.json @@ -64,24 +64,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a723058206ae04dab7842a035dafed67c3a7c6e4dba46f3f40b8fa0fd9a934fb2efadc85b0029", - "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a723058206ae04dab7842a035dafed67c3a7c6e4dba46f3f40b8fa0fd9a934fb2efadc85b0029", - "sourceMap": "25:580:7:-;;;191:76;8:9:-1;5:2;;;30:1;27;20:12;5:2;191:76:7;250:10;242:5;;:18;;;;;;;;;;;;;;;;;;25:580;;;;;;", - "deployedSourceMap": "25:580:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;408:195;;8:9:-1;5:2;;;30:1;27;20:12;5:2;408:195:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;77:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;77:36:7;;;;;;;;;;;;;;;;;;;;;;;51:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;51:20:7;;;;;;;;;;;;;;;;;;;;;;;;;;;273:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;273:129:7;;;;;;;;;;;;;;;;;;;;;;;;;;408:195;494:19;170:5;;;;;;;;;;;156:19;;:10;:19;;;152:26;;;527:11;494:45;;549:8;:21;;;571:24;;549:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;549:47:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;549:47:7;;;;152:26;408:195;;:::o;77:36::-;;;;:::o;51:20::-;;;;;;;;;;;;;:::o;273:129::-;170:5;;;;;;;;;;;156:19;;:10;:19;;;152:26;;;386:9;359:24;:36;;;;152:26;273:129;:::o", - "source": "pragma solidity ^0.4.4;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n function Migrations()\n public\n {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed)\n public\n restricted\n {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address)\n public\n restricted\n {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102f8806100606000396000f300608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820395a1faf61b0f17e3924c1d3e3b1152739b523adb57dd5b79bb0bea6897a5ff70029", + "deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100aa5780638da5cb5b146100d5578063fdacd5761461012c575b600080fd5b34801561007357600080fd5b506100a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610159565b005b3480156100b657600080fd5b506100bf610241565b6040518082815260200191505060405180910390f35b3480156100e157600080fd5b506100ea610247565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561013857600080fd5b506101576004803603810190808035906020019092919050505061026c565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561023d578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561022457600080fd5b505af1158015610238573d6000803e3d6000fd5b505050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102c957806001819055505b505600a165627a7a72305820395a1faf61b0f17e3924c1d3e3b1152739b523adb57dd5b79bb0bea6897a5ff70029", + "sourceMap": "25:572:6:-;;;191:68;8:9:-1;5:2;;;30:1;27;20:12;5:2;191:68:6;242:10;234:5;;:18;;;;;;;;;;;;;;;;;;25:572;;;;;;", + "deployedSourceMap": "25:572:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;400:195;;8:9:-1;5:2;;;30:1;27;20:12;5:2;400:195:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;77:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;77:36:6;;;;;;;;;;;;;;;;;;;;;;;51:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;51:20:6;;;;;;;;;;;;;;;;;;;;;;;;;;;265:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;265:129:6;;;;;;;;;;;;;;;;;;;;;;;;;;400:195;486:19;170:5;;;;;;;;;;;156:19;;:10;:19;;;152:26;;;519:11;486:45;;541:8;:21;;;563:24;;541:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;541:47:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;541:47:6;;;;152:26;400:195;;:::o;77:36::-;;;;:::o;51:20::-;;;;;;;;;;;;;:::o;265:129::-;170:5;;;;;;;;;;;156:19;;:10;:19;;;152:26;;;378:9;351:24;:36;;;;152:26;265:129;:::o", + "source": "pragma solidity ^0.4.4;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n constructor()\n public\n {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed)\n public\n restricted\n {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address)\n public\n restricted\n {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Migrations.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ - 836 + 709 ] }, - "id": 837, + "id": 710, "nodeType": "SourceUnit", "nodes": [ { - "id": 781, + "id": 654, "literals": [ "solidity", "^", @@ -89,7 +89,7 @@ ".4" ], "nodeType": "PragmaDirective", - "src": "0:23:7" + "src": "0:23:6" }, { "baseContracts": [], @@ -97,20 +97,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 836, + "id": 709, "linearizedBaseContracts": [ - 836 + 709 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 783, + "id": 656, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 836, - "src": "51:20:7", + "scope": 709, + "src": "51:20:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -118,10 +118,10 @@ "typeString": "address" }, "typeName": { - "id": 782, + "id": 655, "name": "address", "nodeType": "ElementaryTypeName", - "src": "51:7:7", + "src": "51:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -132,11 +132,11 @@ }, { "constant": false, - "id": 785, + "id": 658, "name": "last_completed_migration", "nodeType": "VariableDeclaration", - "scope": 836, - "src": "77:36:7", + "scope": 709, + "src": "77:36:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -144,10 +144,10 @@ "typeString": "uint256" }, "typeName": { - "id": 784, + "id": 657, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "77:4:7", + "src": "77:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -158,9 +158,9 @@ }, { "body": { - "id": 793, + "id": 666, "nodeType": "Block", - "src": "142:43:7", + "src": "142:43:6", "statements": [ { "condition": { @@ -169,7 +169,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 790, + "id": 663, "isConstant": false, "isLValue": false, "isPure": false, @@ -178,18 +178,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 787, + "id": 660, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "156:3:7", + "referencedDeclaration": 2598, + "src": "156:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 788, + "id": 661, "isConstant": false, "isLValue": false, "isPure": false, @@ -197,7 +197,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "156:10:7", + "src": "156:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -207,70 +207,70 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 789, + "id": 662, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 783, - "src": "170:5:7", + "referencedDeclaration": 656, + "src": "170:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "156:19:7", + "src": "156:19:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 792, + "id": 665, "nodeType": "IfStatement", - "src": "152:26:7", + "src": "152:26:6", "trueBody": { - "id": 791, + "id": 664, "nodeType": "PlaceholderStatement", - "src": "177:1:7" + "src": "177:1:6" } } ] }, "documentation": null, - "id": 794, + "id": 667, "name": "restricted", "nodeType": "ModifierDefinition", "parameters": { - "id": 786, + "id": 659, "nodeType": "ParameterList", "parameters": [], - "src": "139:2:7" + "src": "139:2:6" }, - "src": "120:65:7", + "src": "120:65:6", "visibility": "internal" }, { "body": { - "id": 802, + "id": 675, "nodeType": "Block", - "src": "232:35:7", + "src": "224:35:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 800, + "id": 673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 797, + "id": 670, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 783, - "src": "242:5:7", + "referencedDeclaration": 656, + "src": "234:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -282,18 +282,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 798, + "id": 671, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "250:3:7", + "referencedDeclaration": 2598, + "src": "242:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 799, + "id": 672, "isConstant": false, "isLValue": false, "isPure": false, @@ -301,73 +301,73 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "250:10:7", + "src": "242:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "242:18:7", + "src": "234:18:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 801, + "id": 674, "nodeType": "ExpressionStatement", - "src": "242:18:7" + "src": "234:18:6" } ] }, "documentation": null, - "id": 803, + "id": 676, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], - "name": "Migrations", + "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 795, + "id": 668, "nodeType": "ParameterList", "parameters": [], - "src": "210:2:7" + "src": "202:2:6" }, "payable": false, "returnParameters": { - "id": 796, + "id": 669, "nodeType": "ParameterList", "parameters": [], - "src": "232:0:7" + "src": "224:0:6" }, - "scope": 836, - "src": "191:76:7", + "scope": 709, + "src": "191:68:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 814, + "id": 687, "nodeType": "Block", - "src": "349:53:7", + "src": "341:53:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 812, + "id": 685, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 810, + "id": 683, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "359:24:7", + "referencedDeclaration": 658, + "src": "351:24:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -377,68 +377,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 811, + "id": 684, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "386:9:7", + "referencedDeclaration": 678, + "src": "378:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "359:36:7", + "src": "351:36:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 813, + "id": 686, "nodeType": "ExpressionStatement", - "src": "359:36:7" + "src": "351:36:6" } ] }, "documentation": null, - "id": 815, + "id": 688, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 808, + "id": 681, "modifierName": { "argumentTypes": null, - "id": 807, + "id": 680, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 794, - "src": "334:10:7", + "referencedDeclaration": 667, + "src": "326:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "334:10:7" + "src": "326:10:6" } ], "name": "setCompleted", "nodeType": "FunctionDefinition", "parameters": { - "id": 806, + "id": 679, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 805, + "id": 678, "name": "completed", "nodeType": "VariableDeclaration", - "scope": 815, - "src": "295:14:7", + "scope": 688, + "src": "287:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -446,10 +446,10 @@ "typeString": "uint256" }, "typeName": { - "id": 804, + "id": 677, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "295:4:7", + "src": "287:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -459,54 +459,54 @@ "visibility": "internal" } ], - "src": "294:16:7" + "src": "286:16:6" }, "payable": false, "returnParameters": { - "id": 809, + "id": 682, "nodeType": "ParameterList", "parameters": [], - "src": "349:0:7" + "src": "341:0:6" }, - "scope": 836, - "src": "273:129:7", + "scope": 709, + "src": "265:129:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 834, + "id": 707, "nodeType": "Block", - "src": "484:119:7", + "src": "476:119:6", "statements": [ { "assignments": [ - 823 + 696 ], "declarations": [ { "constant": false, - "id": 823, + "id": 696, "name": "upgraded", "nodeType": "VariableDeclaration", - "scope": 835, - "src": "494:19:7", + "scope": 708, + "src": "486:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$836", + "typeIdentifier": "t_contract$_Migrations_$709", "typeString": "contract Migrations" }, "typeName": { "contractScope": null, - "id": 822, + "id": 695, "name": "Migrations", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 836, - "src": "494:10:7", + "referencedDeclaration": 709, + "src": "486:10:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$836", + "typeIdentifier": "t_contract$_Migrations_$709", "typeString": "contract Migrations" } }, @@ -514,18 +514,18 @@ "visibility": "internal" } ], - "id": 827, + "id": 700, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 825, + "id": 698, "name": "new_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 817, - "src": "527:11:7", + "referencedDeclaration": 690, + "src": "519:11:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -539,18 +539,18 @@ "typeString": "address" } ], - "id": 824, + "id": 697, "name": "Migrations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 836, - "src": "516:10:7", + "referencedDeclaration": 709, + "src": "508:10:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$836_$", + "typeIdentifier": "t_type$_t_contract$_Migrations_$709_$", "typeString": "type(contract Migrations)" } }, - "id": 826, + "id": 699, "isConstant": false, "isLValue": false, "isPure": false, @@ -558,14 +558,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "516:23:7", + "src": "508:23:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$836", + "typeIdentifier": "t_contract$_Migrations_$709", "typeString": "contract Migrations" } }, "nodeType": "VariableDeclarationStatement", - "src": "494:45:7" + "src": "486:45:6" }, { "expression": { @@ -573,12 +573,12 @@ "arguments": [ { "argumentTypes": null, - "id": 831, + "id": 704, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "571:24:7", + "referencedDeclaration": 658, + "src": "563:24:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -594,32 +594,32 @@ ], "expression": { "argumentTypes": null, - "id": 828, + "id": 701, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "549:8:7", + "referencedDeclaration": 696, + "src": "541:8:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$836", + "typeIdentifier": "t_contract$_Migrations_$709", "typeString": "contract Migrations" } }, - "id": 830, + "id": 703, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCompleted", "nodeType": "MemberAccess", - "referencedDeclaration": 815, - "src": "549:21:7", + "referencedDeclaration": 688, + "src": "541:21:6", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, - "id": 832, + "id": 705, "isConstant": false, "isLValue": false, "isPure": false, @@ -627,57 +627,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "549:47:7", + "src": "541:47:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 833, + "id": 706, "nodeType": "ExpressionStatement", - "src": "549:47:7" + "src": "541:47:6" } ] }, "documentation": null, - "id": 835, + "id": 708, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 820, + "id": 693, "modifierName": { "argumentTypes": null, - "id": 819, + "id": 692, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 794, - "src": "469:10:7", + "referencedDeclaration": 667, + "src": "461:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "469:10:7" + "src": "461:10:6" } ], "name": "upgrade", "nodeType": "FunctionDefinition", "parameters": { - "id": 818, + "id": 691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 817, + "id": 690, "name": "new_address", "nodeType": "VariableDeclaration", - "scope": 835, - "src": "425:19:7", + "scope": 708, + "src": "417:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -685,10 +685,10 @@ "typeString": "address" }, "typeName": { - "id": 816, + "id": 689, "name": "address", "nodeType": "ElementaryTypeName", - "src": "425:7:7", + "src": "417:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -698,40 +698,40 @@ "visibility": "internal" } ], - "src": "424:21:7" + "src": "416:21:6" }, "payable": false, "returnParameters": { - "id": 821, + "id": 694, "nodeType": "ParameterList", "parameters": [], - "src": "484:0:7" + "src": "476:0:6" }, - "scope": 836, - "src": "408:195:7", + "scope": 709, + "src": "400:195:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 837, - "src": "25:580:7" + "scope": 710, + "src": "25:572:6" } ], - "src": "0:606:7" + "src": "0:598:6" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Migrations.sol", "exportedSymbols": { "Migrations": [ - 836 + 709 ] }, - "id": 837, + "id": 710, "nodeType": "SourceUnit", "nodes": [ { - "id": 781, + "id": 654, "literals": [ "solidity", "^", @@ -739,7 +739,7 @@ ".4" ], "nodeType": "PragmaDirective", - "src": "0:23:7" + "src": "0:23:6" }, { "baseContracts": [], @@ -747,20 +747,20 @@ "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 836, + "id": 709, "linearizedBaseContracts": [ - 836 + 709 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 783, + "id": 656, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 836, - "src": "51:20:7", + "scope": 709, + "src": "51:20:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -768,10 +768,10 @@ "typeString": "address" }, "typeName": { - "id": 782, + "id": 655, "name": "address", "nodeType": "ElementaryTypeName", - "src": "51:7:7", + "src": "51:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -782,11 +782,11 @@ }, { "constant": false, - "id": 785, + "id": 658, "name": "last_completed_migration", "nodeType": "VariableDeclaration", - "scope": 836, - "src": "77:36:7", + "scope": 709, + "src": "77:36:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -794,10 +794,10 @@ "typeString": "uint256" }, "typeName": { - "id": 784, + "id": 657, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "77:4:7", + "src": "77:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -808,9 +808,9 @@ }, { "body": { - "id": 793, + "id": 666, "nodeType": "Block", - "src": "142:43:7", + "src": "142:43:6", "statements": [ { "condition": { @@ -819,7 +819,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 790, + "id": 663, "isConstant": false, "isLValue": false, "isPure": false, @@ -828,18 +828,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 787, + "id": 660, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "156:3:7", + "referencedDeclaration": 2598, + "src": "156:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 788, + "id": 661, "isConstant": false, "isLValue": false, "isPure": false, @@ -847,7 +847,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "156:10:7", + "src": "156:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -857,70 +857,70 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 789, + "id": 662, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 783, - "src": "170:5:7", + "referencedDeclaration": 656, + "src": "170:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "156:19:7", + "src": "156:19:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 792, + "id": 665, "nodeType": "IfStatement", - "src": "152:26:7", + "src": "152:26:6", "trueBody": { - "id": 791, + "id": 664, "nodeType": "PlaceholderStatement", - "src": "177:1:7" + "src": "177:1:6" } } ] }, "documentation": null, - "id": 794, + "id": 667, "name": "restricted", "nodeType": "ModifierDefinition", "parameters": { - "id": 786, + "id": 659, "nodeType": "ParameterList", "parameters": [], - "src": "139:2:7" + "src": "139:2:6" }, - "src": "120:65:7", + "src": "120:65:6", "visibility": "internal" }, { "body": { - "id": 802, + "id": 675, "nodeType": "Block", - "src": "232:35:7", + "src": "224:35:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 800, + "id": 673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 797, + "id": 670, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 783, - "src": "242:5:7", + "referencedDeclaration": 656, + "src": "234:5:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -932,18 +932,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 798, + "id": 671, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2465, - "src": "250:3:7", + "referencedDeclaration": 2598, + "src": "242:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 799, + "id": 672, "isConstant": false, "isLValue": false, "isPure": false, @@ -951,73 +951,73 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "250:10:7", + "src": "242:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "242:18:7", + "src": "234:18:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 801, + "id": 674, "nodeType": "ExpressionStatement", - "src": "242:18:7" + "src": "234:18:6" } ] }, "documentation": null, - "id": 803, + "id": 676, "implemented": true, "isConstructor": true, "isDeclaredConst": false, "modifiers": [], - "name": "Migrations", + "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 795, + "id": 668, "nodeType": "ParameterList", "parameters": [], - "src": "210:2:7" + "src": "202:2:6" }, "payable": false, "returnParameters": { - "id": 796, + "id": 669, "nodeType": "ParameterList", "parameters": [], - "src": "232:0:7" + "src": "224:0:6" }, - "scope": 836, - "src": "191:76:7", + "scope": 709, + "src": "191:68:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 814, + "id": 687, "nodeType": "Block", - "src": "349:53:7", + "src": "341:53:6", "statements": [ { "expression": { "argumentTypes": null, - "id": 812, + "id": 685, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 810, + "id": 683, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "359:24:7", + "referencedDeclaration": 658, + "src": "351:24:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1027,68 +1027,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 811, + "id": 684, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "386:9:7", + "referencedDeclaration": 678, + "src": "378:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "359:36:7", + "src": "351:36:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 813, + "id": 686, "nodeType": "ExpressionStatement", - "src": "359:36:7" + "src": "351:36:6" } ] }, "documentation": null, - "id": 815, + "id": 688, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 808, + "id": 681, "modifierName": { "argumentTypes": null, - "id": 807, + "id": 680, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 794, - "src": "334:10:7", + "referencedDeclaration": 667, + "src": "326:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "334:10:7" + "src": "326:10:6" } ], "name": "setCompleted", "nodeType": "FunctionDefinition", "parameters": { - "id": 806, + "id": 679, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 805, + "id": 678, "name": "completed", "nodeType": "VariableDeclaration", - "scope": 815, - "src": "295:14:7", + "scope": 688, + "src": "287:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1096,10 +1096,10 @@ "typeString": "uint256" }, "typeName": { - "id": 804, + "id": 677, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "295:4:7", + "src": "287:4:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1109,54 +1109,54 @@ "visibility": "internal" } ], - "src": "294:16:7" + "src": "286:16:6" }, "payable": false, "returnParameters": { - "id": 809, + "id": 682, "nodeType": "ParameterList", "parameters": [], - "src": "349:0:7" + "src": "341:0:6" }, - "scope": 836, - "src": "273:129:7", + "scope": 709, + "src": "265:129:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 834, + "id": 707, "nodeType": "Block", - "src": "484:119:7", + "src": "476:119:6", "statements": [ { "assignments": [ - 823 + 696 ], "declarations": [ { "constant": false, - "id": 823, + "id": 696, "name": "upgraded", "nodeType": "VariableDeclaration", - "scope": 835, - "src": "494:19:7", + "scope": 708, + "src": "486:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$836", + "typeIdentifier": "t_contract$_Migrations_$709", "typeString": "contract Migrations" }, "typeName": { "contractScope": null, - "id": 822, + "id": 695, "name": "Migrations", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 836, - "src": "494:10:7", + "referencedDeclaration": 709, + "src": "486:10:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$836", + "typeIdentifier": "t_contract$_Migrations_$709", "typeString": "contract Migrations" } }, @@ -1164,18 +1164,18 @@ "visibility": "internal" } ], - "id": 827, + "id": 700, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 825, + "id": 698, "name": "new_address", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 817, - "src": "527:11:7", + "referencedDeclaration": 690, + "src": "519:11:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1189,18 +1189,18 @@ "typeString": "address" } ], - "id": 824, + "id": 697, "name": "Migrations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 836, - "src": "516:10:7", + "referencedDeclaration": 709, + "src": "508:10:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$836_$", + "typeIdentifier": "t_type$_t_contract$_Migrations_$709_$", "typeString": "type(contract Migrations)" } }, - "id": 826, + "id": 699, "isConstant": false, "isLValue": false, "isPure": false, @@ -1208,14 +1208,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "516:23:7", + "src": "508:23:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$836", + "typeIdentifier": "t_contract$_Migrations_$709", "typeString": "contract Migrations" } }, "nodeType": "VariableDeclarationStatement", - "src": "494:45:7" + "src": "486:45:6" }, { "expression": { @@ -1223,12 +1223,12 @@ "arguments": [ { "argumentTypes": null, - "id": 831, + "id": 704, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "571:24:7", + "referencedDeclaration": 658, + "src": "563:24:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1244,32 +1244,32 @@ ], "expression": { "argumentTypes": null, - "id": 828, + "id": 701, "name": "upgraded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 823, - "src": "549:8:7", + "referencedDeclaration": 696, + "src": "541:8:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$836", + "typeIdentifier": "t_contract$_Migrations_$709", "typeString": "contract Migrations" } }, - "id": 830, + "id": 703, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "setCompleted", "nodeType": "MemberAccess", - "referencedDeclaration": 815, - "src": "549:21:7", + "referencedDeclaration": 688, + "src": "541:21:6", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", "typeString": "function (uint256) external" } }, - "id": 832, + "id": 705, "isConstant": false, "isLValue": false, "isPure": false, @@ -1277,57 +1277,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "549:47:7", + "src": "541:47:6", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 833, + "id": 706, "nodeType": "ExpressionStatement", - "src": "549:47:7" + "src": "541:47:6" } ] }, "documentation": null, - "id": 835, + "id": 708, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 820, + "id": 693, "modifierName": { "argumentTypes": null, - "id": 819, + "id": 692, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 794, - "src": "469:10:7", + "referencedDeclaration": 667, + "src": "461:10:6", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "469:10:7" + "src": "461:10:6" } ], "name": "upgrade", "nodeType": "FunctionDefinition", "parameters": { - "id": 818, + "id": 691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 817, + "id": 690, "name": "new_address", "nodeType": "VariableDeclaration", - "scope": 835, - "src": "425:19:7", + "scope": 708, + "src": "417:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1335,10 +1335,10 @@ "typeString": "address" }, "typeName": { - "id": 816, + "id": 689, "name": "address", "nodeType": "ElementaryTypeName", - "src": "425:7:7", + "src": "417:7:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1348,76 +1348,52 @@ "visibility": "internal" } ], - "src": "424:21:7" + "src": "416:21:6" }, "payable": false, "returnParameters": { - "id": 821, + "id": 694, "nodeType": "ParameterList", "parameters": [], - "src": "484:0:7" + "src": "476:0:6" }, - "scope": 836, - "src": "408:195:7", + "scope": 709, + "src": "400:195:6", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 837, - "src": "25:580:7" + "scope": 710, + "src": "25:572:6" } ], - "src": "0:606:7" + "src": "0:598:6" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { "4": { "events": {}, "links": {}, - "address": "0x682586e353e6befc8c7c09ba28165afca941ed5f", - "transactionHash": "0xfa828695bce76ea64bfa11fac92c01894ca684341a49e1d583c43a0d13bb0ec1" - }, - "42": { - "events": {}, - "links": {}, - "address": "0x304f68cf0ca47b08d6bbf23c6f82d92bacf5378e", - "transactionHash": "0xa1edbc493e7f59db46fe904a775189a9fcdca9efabeea55db94f09fd64d37461" - }, - "1525950336085": { - "events": {}, - "links": {}, - "address": "0xb97a46b50b9e38d540e9701d3d4afe71a65c09df", - "transactionHash": "0x137111f15934455430bea53bd8a6721561285af6a431f174f090257877635ab6" - }, - "1526283540628": { - "events": {}, - "links": {}, - "address": "0x3b293b12ee278dba3d4350cd5b4434c228bad69b", - "transactionHash": "0x137111f15934455430bea53bd8a6721561285af6a431f174f090257877635ab6" - }, - "1526478212260": { - "events": {}, - "links": {}, - "address": "0x6ff07ab4d4ecb8339dee6bd028e379c2a1992103", - "transactionHash": "0x137111f15934455430bea53bd8a6721561285af6a431f174f090257877635ab6" - }, - "1526973574996": { - "events": {}, - "links": {}, - "address": "0xf06f42d5ffd359b4a14e6fecada46cafdb3276f2", - "transactionHash": "0x137111f15934455430bea53bd8a6721561285af6a431f174f090257877635ab6" + "address": "0x310ed4914d3d280593bdd91cd25f3010cef95c8f", + "transactionHash": "0x77ed51dc2aaa3502d11556785f91f9a1ec7102c4ab4d9fd24b163a12d46664ed" }, "1527316019334": { "events": {}, "links": {}, - "address": "0x2a4404906523f58d56823eacf9f27d62348baff5", - "transactionHash": "0x137111f15934455430bea53bd8a6721561285af6a431f174f090257877635ab6" + "address": "0x9511a1770d3700a42a922080cf7f2f20db4d9c05", + "transactionHash": "0x3215566e4282c1fe81a9e093b0fa684ce647015b0e43446042c71426709d8170" + }, + "1527420696956": { + "events": {}, + "links": {}, + "address": "0x03b6c37cb58fdaec2b5f7e9f9ed58a7525ef79d7", + "transactionHash": "0xb6a19a7a679a1474c09c651e4151421f210afa3f47effed019d4c0206144ee5f" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-26T06:28:28.365Z" + "updatedAt": "2018-05-27T11:31:46.343Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/Module.json b/safe-contracts/build/contracts/Module.json index d5d93b4e..0f066967 100644 --- a/safe-contracts/build/contracts/Module.json +++ b/safe-contracts/build/contracts/Module.json @@ -30,51 +30,51 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610202806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561016d57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561019357600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820022bc97a157f8f1660f06255d7c4b4cf1258759b394ed54181754cfffe1f70ee0029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561016d57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561019357600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820022bc97a157f8f1660f06255d7c4b4cf1258759b394ed54181754cfffe1f70ee0029", - "sourceMap": "225:437:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;225:437:5;;;;;;;", - "deployedSourceMap": "225:437:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:5;;;;;;;;;;;;;;;;;;;;;;;;;;;626:208:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:5;;;;;;;;;;;;;:::o;626:208:4:-;359:7:5;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;791:1:4;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o", - "source": "pragma solidity 0.4.23;\nimport \"./MasterCopy.sol\";\nimport \"./ModuleManager.sol\";\n\n\n/// @title Module - Base class for modules.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract Module is MasterCopy {\n\n ModuleManager public manager;\n\n modifier authorized() {\n require(msg.sender == address(manager));\n _;\n }\n\n function setManager()\n internal\n {\n // manager can only be 0 at initalization of contract.\n // Check ensures that setup function can only be called once.\n require(address(manager) == 0);\n manager = ModuleManager(msg.sender);\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50610202806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561016d57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561019357600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058201e28a6acfe6922717722c910e51de720875c6e665112c8866ae58ba4fc613f1b0029", + "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561016d57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561019357600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058201e28a6acfe6922717722c910e51de720875c6e665112c8866ae58ba4fc613f1b0029", + "sourceMap": "225:437:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;225:437:7;;;;;;;", + "deployedSourceMap": "225:437:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;626:208:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:7;;;;;;;;;;;;;:::o;626:208:5:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;791:1:5;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./MasterCopy.sol\";\nimport \"./ModuleManager.sol\";\n\n\n/// @title Module - Base class for modules.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract Module is MasterCopy {\n\n ModuleManager public manager;\n\n modifier authorized() {\n require(msg.sender == address(manager));\n _;\n }\n\n function setManager()\n internal\n {\n // manager can only be 0 at initalization of contract.\n // Check ensures that setup function can only be called once.\n require(address(manager) == 0);\n manager = ModuleManager(msg.sender);\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "exportedSymbols": { "Module": [ - 621 + 750 ] }, - "id": 622, + "id": 751, "nodeType": "SourceUnit", "nodes": [ { - "id": 582, + "id": 711, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:5" + "src": "0:23:7" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 583, + "id": 712, "nodeType": "ImportDirective", - "scope": 622, - "sourceUnit": 581, - "src": "24:26:5", + "scope": 751, + "sourceUnit": 653, + "src": "24:26:7", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "./ModuleManager.sol", - "id": 584, + "id": 713, "nodeType": "ImportDirective", - "scope": 622, - "sourceUnit": 972, - "src": "51:29:5", + "scope": 751, + "sourceUnit": 1101, + "src": "51:29:7", "symbolAliases": [], "unitAlias": "" }, @@ -84,59 +84,59 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 585, + "id": 714, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 580, - "src": "244:10:5", + "referencedDeclaration": 652, + "src": "244:10:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$580", + "typeIdentifier": "t_contract$_MasterCopy_$652", "typeString": "contract MasterCopy" } }, - "id": 586, + "id": 715, "nodeType": "InheritanceSpecifier", - "src": "244:10:5" + "src": "244:10:7" } ], "contractDependencies": [ - 580, - 1359 + 652, + 1619 ], "contractKind": "contract", "documentation": "@title Module - Base class for modules.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 621, + "id": 750, "linearizedBaseContracts": [ - 621, - 580, - 1359 + 750, + 652, + 1619 ], "name": "Module", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 588, + "id": 717, "name": "manager", "nodeType": "VariableDeclaration", - "scope": 621, - "src": "262:28:5", + "scope": 750, + "src": "262:28:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" }, "typeName": { "contractScope": null, - "id": 587, + "id": 716, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 971, - "src": "262:13:5", + "referencedDeclaration": 1100, + "src": "262:13:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } }, @@ -145,9 +145,9 @@ }, { "body": { - "id": 600, + "id": 729, "nodeType": "Block", - "src": "319:67:5", + "src": "319:67:7", "statements": [ { "expression": { @@ -159,7 +159,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 596, + "id": 725, "isConstant": false, "isLValue": false, "isPure": false, @@ -168,18 +168,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 591, + "id": 720, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "337:3:5", + "referencedDeclaration": 2598, + "src": "337:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 592, + "id": 721, "isConstant": false, "isLValue": false, "isPure": false, @@ -187,7 +187,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "337:10:5", + "src": "337:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -200,14 +200,14 @@ "arguments": [ { "argumentTypes": null, - "id": 594, + "id": 723, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "359:7:5", + "referencedDeclaration": 717, + "src": "359:7:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } } @@ -215,24 +215,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } ], - "id": 593, + "id": 722, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "351:7:5", + "src": "351:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 595, + "id": 724, "isConstant": false, "isLValue": false, "isPure": false, @@ -240,13 +240,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "351:16:5", + "src": "351:16:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "337:30:5", + "src": "337:30:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -260,21 +260,21 @@ "typeString": "bool" } ], - "id": 590, + "id": 719, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "329:7:5", + "referencedDeclaration": 2601, + "src": "329:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 597, + "id": 726, "isConstant": false, "isLValue": false, "isPure": false, @@ -282,41 +282,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "329:39:5", + "src": "329:39:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 598, + "id": 727, "nodeType": "ExpressionStatement", - "src": "329:39:5" + "src": "329:39:7" }, { - "id": 599, + "id": 728, "nodeType": "PlaceholderStatement", - "src": "378:1:5" + "src": "378:1:7" } ] }, "documentation": null, - "id": 601, + "id": 730, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 589, + "id": 718, "nodeType": "ParameterList", "parameters": [], - "src": "316:2:5" + "src": "316:2:7" }, - "src": "297:89:5", + "src": "297:89:7", "visibility": "internal" }, { "body": { - "id": 619, + "id": 748, "nodeType": "Block", - "src": "435:225:5", + "src": "435:225:7", "statements": [ { "expression": { @@ -328,7 +328,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 609, + "id": 738, "isConstant": false, "isLValue": false, "isPure": false, @@ -338,14 +338,14 @@ "arguments": [ { "argumentTypes": null, - "id": 606, + "id": 735, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "594:7:5", + "referencedDeclaration": 717, + "src": "594:7:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } } @@ -353,24 +353,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } ], - "id": 605, + "id": 734, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "586:7:5", + "src": "586:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 607, + "id": 736, "isConstant": false, "isLValue": false, "isPure": false, @@ -378,7 +378,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "586:16:5", + "src": "586:16:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -389,14 +389,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 608, + "id": 737, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "606:1:5", + "src": "606:1:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -404,7 +404,7 @@ }, "value": "0" }, - "src": "586:21:5", + "src": "586:21:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -418,21 +418,21 @@ "typeString": "bool" } ], - "id": 604, + "id": 733, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "578:7:5", + "referencedDeclaration": 2601, + "src": "578:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 610, + "id": 739, "isConstant": false, "isLValue": false, "isPure": false, @@ -440,34 +440,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "578:30:5", + "src": "578:30:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 611, + "id": 740, "nodeType": "ExpressionStatement", - "src": "578:30:5" + "src": "578:30:7" }, { "expression": { "argumentTypes": null, - "id": 617, + "id": 746, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 612, + "id": 741, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "618:7:5", + "referencedDeclaration": 717, + "src": "618:7:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } }, @@ -480,18 +480,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 614, + "id": 743, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "642:3:5", + "referencedDeclaration": 2598, + "src": "642:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 615, + "id": 744, "isConstant": false, "isLValue": false, "isPure": false, @@ -499,7 +499,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "642:10:5", + "src": "642:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -513,18 +513,18 @@ "typeString": "address" } ], - "id": 613, + "id": 742, "name": "ModuleManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "628:13:5", + "referencedDeclaration": 1100, + "src": "628:13:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ModuleManager_$971_$", + "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1100_$", "typeString": "type(contract ModuleManager)" } }, - "id": 616, + "id": 745, "isConstant": false, "isLValue": false, "isPure": false, @@ -532,26 +532,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "628:25:5", + "src": "628:25:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } }, - "src": "618:35:5", + "src": "618:35:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } }, - "id": 618, + "id": 747, "nodeType": "ExpressionStatement", - "src": "618:35:5" + "src": "618:35:7" } ] }, "documentation": null, - "id": 620, + "id": 749, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -559,70 +559,70 @@ "name": "setManager", "nodeType": "FunctionDefinition", "parameters": { - "id": 602, + "id": 731, "nodeType": "ParameterList", "parameters": [], - "src": "411:2:5" + "src": "411:2:7" }, "payable": false, "returnParameters": { - "id": 603, + "id": 732, "nodeType": "ParameterList", "parameters": [], - "src": "435:0:5" + "src": "435:0:7" }, - "scope": 621, - "src": "392:268:5", + "scope": 750, + "src": "392:268:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 622, - "src": "225:437:5" + "scope": 751, + "src": "225:437:7" } ], - "src": "0:663:5" + "src": "0:663:7" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "exportedSymbols": { "Module": [ - 621 + 750 ] }, - "id": 622, + "id": 751, "nodeType": "SourceUnit", "nodes": [ { - "id": 582, + "id": 711, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:5" + "src": "0:23:7" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 583, + "id": 712, "nodeType": "ImportDirective", - "scope": 622, - "sourceUnit": 581, - "src": "24:26:5", + "scope": 751, + "sourceUnit": 653, + "src": "24:26:7", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "./ModuleManager.sol", - "id": 584, + "id": 713, "nodeType": "ImportDirective", - "scope": 622, - "sourceUnit": 972, - "src": "51:29:5", + "scope": 751, + "sourceUnit": 1101, + "src": "51:29:7", "symbolAliases": [], "unitAlias": "" }, @@ -632,59 +632,59 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 585, + "id": 714, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 580, - "src": "244:10:5", + "referencedDeclaration": 652, + "src": "244:10:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$580", + "typeIdentifier": "t_contract$_MasterCopy_$652", "typeString": "contract MasterCopy" } }, - "id": 586, + "id": 715, "nodeType": "InheritanceSpecifier", - "src": "244:10:5" + "src": "244:10:7" } ], "contractDependencies": [ - 580, - 1359 + 652, + 1619 ], "contractKind": "contract", "documentation": "@title Module - Base class for modules.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 621, + "id": 750, "linearizedBaseContracts": [ - 621, - 580, - 1359 + 750, + 652, + 1619 ], "name": "Module", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 588, + "id": 717, "name": "manager", "nodeType": "VariableDeclaration", - "scope": 621, - "src": "262:28:5", + "scope": 750, + "src": "262:28:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" }, "typeName": { "contractScope": null, - "id": 587, + "id": 716, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 971, - "src": "262:13:5", + "referencedDeclaration": 1100, + "src": "262:13:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } }, @@ -693,9 +693,9 @@ }, { "body": { - "id": 600, + "id": 729, "nodeType": "Block", - "src": "319:67:5", + "src": "319:67:7", "statements": [ { "expression": { @@ -707,7 +707,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 596, + "id": 725, "isConstant": false, "isLValue": false, "isPure": false, @@ -716,18 +716,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 591, + "id": 720, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "337:3:5", + "referencedDeclaration": 2598, + "src": "337:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 592, + "id": 721, "isConstant": false, "isLValue": false, "isPure": false, @@ -735,7 +735,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "337:10:5", + "src": "337:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -748,14 +748,14 @@ "arguments": [ { "argumentTypes": null, - "id": 594, + "id": 723, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "359:7:5", + "referencedDeclaration": 717, + "src": "359:7:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } } @@ -763,24 +763,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } ], - "id": 593, + "id": 722, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "351:7:5", + "src": "351:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 595, + "id": 724, "isConstant": false, "isLValue": false, "isPure": false, @@ -788,13 +788,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "351:16:5", + "src": "351:16:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "337:30:5", + "src": "337:30:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -808,21 +808,21 @@ "typeString": "bool" } ], - "id": 590, + "id": 719, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "329:7:5", + "referencedDeclaration": 2601, + "src": "329:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 597, + "id": 726, "isConstant": false, "isLValue": false, "isPure": false, @@ -830,41 +830,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "329:39:5", + "src": "329:39:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 598, + "id": 727, "nodeType": "ExpressionStatement", - "src": "329:39:5" + "src": "329:39:7" }, { - "id": 599, + "id": 728, "nodeType": "PlaceholderStatement", - "src": "378:1:5" + "src": "378:1:7" } ] }, "documentation": null, - "id": 601, + "id": 730, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 589, + "id": 718, "nodeType": "ParameterList", "parameters": [], - "src": "316:2:5" + "src": "316:2:7" }, - "src": "297:89:5", + "src": "297:89:7", "visibility": "internal" }, { "body": { - "id": 619, + "id": 748, "nodeType": "Block", - "src": "435:225:5", + "src": "435:225:7", "statements": [ { "expression": { @@ -876,7 +876,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 609, + "id": 738, "isConstant": false, "isLValue": false, "isPure": false, @@ -886,14 +886,14 @@ "arguments": [ { "argumentTypes": null, - "id": 606, + "id": 735, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "594:7:5", + "referencedDeclaration": 717, + "src": "594:7:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } } @@ -901,24 +901,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } ], - "id": 605, + "id": 734, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "586:7:5", + "src": "586:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 607, + "id": 736, "isConstant": false, "isLValue": false, "isPure": false, @@ -926,7 +926,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "586:16:5", + "src": "586:16:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -937,14 +937,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 608, + "id": 737, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "606:1:5", + "src": "606:1:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -952,7 +952,7 @@ }, "value": "0" }, - "src": "586:21:5", + "src": "586:21:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -966,21 +966,21 @@ "typeString": "bool" } ], - "id": 604, + "id": 733, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "578:7:5", + "referencedDeclaration": 2601, + "src": "578:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 610, + "id": 739, "isConstant": false, "isLValue": false, "isPure": false, @@ -988,34 +988,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "578:30:5", + "src": "578:30:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 611, + "id": 740, "nodeType": "ExpressionStatement", - "src": "578:30:5" + "src": "578:30:7" }, { "expression": { "argumentTypes": null, - "id": 617, + "id": 746, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 612, + "id": 741, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "618:7:5", + "referencedDeclaration": 717, + "src": "618:7:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } }, @@ -1028,18 +1028,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 614, + "id": 743, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "642:3:5", + "referencedDeclaration": 2598, + "src": "642:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 615, + "id": 744, "isConstant": false, "isLValue": false, "isPure": false, @@ -1047,7 +1047,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "642:10:5", + "src": "642:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1061,18 +1061,18 @@ "typeString": "address" } ], - "id": 613, + "id": 742, "name": "ModuleManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 971, - "src": "628:13:5", + "referencedDeclaration": 1100, + "src": "628:13:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ModuleManager_$971_$", + "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1100_$", "typeString": "type(contract ModuleManager)" } }, - "id": 616, + "id": 745, "isConstant": false, "isLValue": false, "isPure": false, @@ -1080,26 +1080,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "628:25:5", + "src": "628:25:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } }, - "src": "618:35:5", + "src": "618:35:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } }, - "id": 618, + "id": 747, "nodeType": "ExpressionStatement", - "src": "618:35:5" + "src": "618:35:7" } ] }, "documentation": null, - "id": 620, + "id": 749, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1107,36 +1107,36 @@ "name": "setManager", "nodeType": "FunctionDefinition", "parameters": { - "id": 602, + "id": 731, "nodeType": "ParameterList", "parameters": [], - "src": "411:2:5" + "src": "411:2:7" }, "payable": false, "returnParameters": { - "id": 603, + "id": 732, "nodeType": "ParameterList", "parameters": [], - "src": "435:0:5" + "src": "435:0:7" }, - "scope": 621, - "src": "392:268:5", + "scope": 750, + "src": "392:268:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 622, - "src": "225:437:5" + "scope": 751, + "src": "225:437:7" } ], - "src": "0:663:5" + "src": "0:663:7" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-16T10:51:14.746Z" + "updatedAt": "2018-05-27T11:12:45.579Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/ModuleManager.json b/safe-contracts/build/contracts/ModuleManager.json index 8ab073d5..240aef16 100644 --- a/safe-contracts/build/contracts/ModuleManager.json +++ b/safe-contracts/build/contracts/ModuleManager.json @@ -138,62 +138,62 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610d8f806100206000396000f300608060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a714610085578063610b59251461013d57806385e332cd14610180578063a3f4df7e146101d7578063b2494df314610267578063e009cfde146102d3578063ffa1ad7414610336575b005b34801561009157600080fd5b50610123600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b34801561014957600080fd5b5061017e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610462565b005b34801561018c57600080fd5b506101956106db565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101e357600080fd5b506101ec6106e0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022c578082015181840152602081019050610211565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027357600080fd5b5061027c610719565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102bf5780820151818401526020810190506102a4565b505050509050019250505060405180910390f35b3480156102df57600080fd5b50610334600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bc565b005b34801561034257600080fd5b5061034b610beb565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038b578082015181840152602081019050610370565b50505050905090810190601f1680156103b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561044b57600080fd5b610458858585855a610c24565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561049c57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156104f05750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156104fb57600080fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561057e57600080fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561082b576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610787565b8260405190808252806020026020018201604052801561085a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156109b35781818481518110151561090957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506108c4565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a8e57600080fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b60008060006002811115610c3457fe5b846002811115610c4057fe5b1415610c5957610c5287878786610d21565b9150610d17565b60016002811115610c6657fe5b846002811115610c7257fe5b1415610c8a57610c83878685610d3a565b9150610d16565b610c9385610d51565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820f73984cc7cb90fc15f3fdf21f5e74b21221f6ace06f0742ae3ee75acdbd56ef40029", - "deployedBytecode": "0x608060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a714610085578063610b59251461013d57806385e332cd14610180578063a3f4df7e146101d7578063b2494df314610267578063e009cfde146102d3578063ffa1ad7414610336575b005b34801561009157600080fd5b50610123600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b34801561014957600080fd5b5061017e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610462565b005b34801561018c57600080fd5b506101956106db565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101e357600080fd5b506101ec6106e0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022c578082015181840152602081019050610211565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027357600080fd5b5061027c610719565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102bf5780820151818401526020810190506102a4565b505050509050019250505060405180910390f35b3480156102df57600080fd5b50610334600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bc565b005b34801561034257600080fd5b5061034b610beb565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038b578082015181840152602081019050610370565b50505050905090810190601f1680156103b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561044b57600080fd5b610458858585855a610c24565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561049c57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156104f05750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156104fb57600080fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561057e57600080fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561082b576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610787565b8260405190808252806020026020018201604052801561085a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156109b35781818481518110151561090957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506108c4565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a8e57600080fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b60008060006002811115610c3457fe5b846002811115610c4057fe5b1415610c5957610c5287878786610d21565b9150610d17565b60016002811115610c6657fe5b846002811115610c7257fe5b1415610c8a57610c83878685610d3a565b9150610d16565b610c9385610d51565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820f73984cc7cb90fc15f3fdf21f5e74b21221f6ace06f0742ae3ee75acdbd56ef40029", - "sourceMap": "303:4860:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;303:4860:6;;;;;;;", - "deployedSourceMap": "303:4860:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2522:377;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2522:377:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1235:391;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1235:391:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:55:6;;;;;;;;;;;;;;;;;;;;;;;;;;;401:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;401:46: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;401:46:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4423:738;;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;;;;;;;;;;;;;;;;;1887:299;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1887:299:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;453:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;453:40: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;453:40:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2522:377;2654:12;2762:1;2739:7;:19;2747:10;2739:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2731:33;;;;;;;;2846:46;2854:2;2858:5;2865:4;2871:9;2882;2846:7;:46::i;:::-;2836:56;;2522:377;;;;;;:::o;1235:391::-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;1401:1:6;1390:6;1382:20;;;;:59;;;;;550:3;1406:35;;1414:6;1406:35;;;;1382:59;1374:68;;;;;;;;1520:1;1501:7;:15;1509:6;1501:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1493:29;;;;;;;;1550:7;:25;550:3;1550:25;;;;;;;;;;;;;;;;;;;;;;;;;1532:7;:15;1540:6;1532:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1613:6;1585:7;:25;550:3;1585:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1235:391;:::o;499:55::-;550:3;499:55;:::o;401:46::-;;;;;;;;;;;;;;;;;;;;:::o;4423:738::-;4490:9;4549:19;4582:21;4782:22;4571:1;4549:23;;4606:7;:25;550:3;4606:25;;;;;;;;;;;;;;;;;;;;;;;;;4582:49;;4641:132;550:3;4647:33;;:13;:33;;;;4641:132;;;4712:7;:22;4720:13;4712:22;;;;;;;;;;;;;;;;;;;;;;;;;4696:38;;4748:14;;;;;;;4641:132;;;4821:11;4807:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4807:26:6;;;;4782:51;;4891:1;4877:15;;4918:7;:25;550:3;4918:25;;;;;;;;;;;;;;;;;;;;;;;;;4902:41;;4953:180;550:3;4959:33;;:13;:33;;;;4953:180;;;5029:13;5008:5;5014:11;5008:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5072:7;:22;5080:13;5072:22;;;;;;;;;;;;;;;;;;;;;;;;;5056:38;;5108:14;;;;;;;4953:180;;;5149:5;5142:12;;4423:738;;;;:::o;1887:299::-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;2095:6:6;2064:38;;:7;:19;2072:10;2064:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2056:47;;;;;;;;2135:7;:15;2143:6;2135:15;;;;;;;;;;;;;;;;;;;;;;;;;2113:7;:19;2121:10;2113:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2178:1;2160:7;:15;2168:6;2160:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1887:299;;:::o;453:40::-;;;;;;;;;;;;;;;;;;;;:::o;2905:548::-;3036:12;3307:19;3081;3068:32;;;;;;;;:9;:32;;;;;;;;;3064:383;;;3124:35;3136:2;3140:5;3147:4;3153:5;3124:11;:35::i;:::-;3114:45;;3064:383;;;3191:27;3178:40;;;;;;;;:9;:40;;;;;;;;;3174:273;;;3242:36;3262:2;3266:4;3272:5;3242:19;:36::i;:::-;3232:46;;3174:273;;;3329:19;3343:4;3329:13;:19::i;:::-;3307:41;;3387:1;3372:11;:16;;;;3362:26;;3407:29;3424:11;3407:29;;;;;;;;;;;;;;;;;;;;;;3174:273;3064:383;2905:548;;;;;;;;:::o;3459:309::-;3568:12;3750:1;3747;3740:4;3734:11;3727:4;3721;3717:15;3710:5;3706:2;3699:5;3694:58;3683:69;;3669:93;;;;;;:::o;3774:303::-;3876:12;4059:1;4056;4049:4;4043:11;4036:4;4030;4026:15;4022:2;4015:5;4002:59;3991:70;;3977:94;;;;;:::o;4083:261::-;4152:19;4322:4;4316:11;4309:4;4303;4299:15;4296:1;4289:39;4274:54;;4260:78;;;:::o", - "source": "pragma solidity 0.4.23;\nimport \"./Module.sol\";\nimport \"./MasterCopy.sol\";\nimport \"./Enum.sol\";\n\n\n/// @title Module Manager - A contract that manages modules that can execute transactions via this contract\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract ModuleManager is SelfAuthorized {\n\n event ContractCreation(address newContract);\n\n string public constant NAME = \"Module Manager\";\n string public constant VERSION = \"0.0.1\";\n address public constant SENTINEL_MODULES = address(0x1);\n\n mapping (address => address) internal modules;\n\n /// @dev Fallback function accepts Ether transactions.\n function ()\n external\n payable\n {\n\n }\n\n function setupModules(address to, bytes data)\n internal\n {\n require(modules[SENTINEL_MODULES] == 0);\n modules[SENTINEL_MODULES] = SENTINEL_MODULES;\n if (to != 0)\n // Setup has to complete successfully or transaction fails.\n require(executeDelegateCall(to, data, gasleft()));\n }\n\n /// @dev Allows to add a module to the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param module Module to be whitelisted.\n function enableModule(Module module)\n public\n authorized\n {\n // Module address cannot be null or sentinel.\n require(address(module) != 0 && address(module) != SENTINEL_MODULES);\n // Module cannot be added twice.\n require(modules[module] == 0);\n modules[module] = modules[SENTINEL_MODULES];\n modules[SENTINEL_MODULES] = module;\n }\n\n /// @dev Allows to remove a module from the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param prevModule Module that pointed to the module to be removed in the linked list\n /// @param module Module to be removed.\n function disableModule(Module prevModule, Module module)\n public\n authorized\n {\n // Validate module address corresponds to module index.\n require(modules[prevModule] == address(module));\n modules[prevModule] = modules[module];\n modules[module] = 0;\n }\n\n /// @dev Allows a Module to execute a Safe transaction without any further confirmations.\n /// @param to Destination address of module transaction.\n /// @param value Ether value of module transaction.\n /// @param data Data payload of module transaction.\n /// @param operation Operation type of module transaction.\n function execTransactionFromModule(address to, uint256 value, bytes data, Enum.Operation operation)\n public\n returns (bool success)\n {\n // Only whitelisted modules are allowed.\n require(modules[msg.sender] != 0);\n // Execute transaction without further confirmations.\n success = execute(to, value, data, operation, gasleft());\n }\n\n function execute(address to, uint256 value, bytes data, Enum.Operation operation, uint256 txGas)\n internal\n returns (bool success)\n {\n if (operation == Enum.Operation.Call)\n success = executeCall(to, value, data, txGas);\n else if (operation == Enum.Operation.DelegateCall)\n success = executeDelegateCall(to, data, txGas);\n else {\n address newContract = executeCreate(data);\n success = newContract != 0;\n emit ContractCreation(newContract);\n }\n }\n\n function executeCall(address to, uint256 value, bytes data, uint256 txGas)\n internal\n returns (bool success)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n }\n }\n\n function executeDelegateCall(address to, bytes data, uint256 txGas)\n internal\n returns (bool success)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n }\n }\n\n function executeCreate(bytes data)\n internal\n returns (address newContract)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n newContract := create(0, add(data, 0x20), mload(data))\n }\n }\n\n /// @dev Returns array of modules.\n /// @return Array of modules.\n function getModules()\n public\n view\n returns (address[])\n {\n // Calculate module count\n uint256 moduleCount = 0;\n address currentModule = modules[SENTINEL_MODULES];\n while(currentModule != SENTINEL_MODULES) {\n currentModule = modules[currentModule];\n moduleCount ++;\n }\n address[] memory array = new address[](moduleCount);\n\n // populate return array\n moduleCount = 0;\n currentModule = modules[SENTINEL_MODULES];\n while(currentModule != SENTINEL_MODULES) {\n array[moduleCount] = currentModule;\n currentModule = modules[currentModule];\n moduleCount ++;\n }\n return array;\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50610d8f806100206000396000f300608060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a714610085578063610b59251461013d57806385e332cd14610180578063a3f4df7e146101d7578063b2494df314610267578063e009cfde146102d3578063ffa1ad7414610336575b005b34801561009157600080fd5b50610123600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b34801561014957600080fd5b5061017e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610462565b005b34801561018c57600080fd5b506101956106db565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101e357600080fd5b506101ec6106e0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022c578082015181840152602081019050610211565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027357600080fd5b5061027c610719565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102bf5780820151818401526020810190506102a4565b505050509050019250505060405180910390f35b3480156102df57600080fd5b50610334600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bc565b005b34801561034257600080fd5b5061034b610beb565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038b578082015181840152602081019050610370565b50505050905090810190601f1680156103b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561044b57600080fd5b610458858585855a610c24565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561049c57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156104f05750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156104fb57600080fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561057e57600080fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561082b576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610787565b8260405190808252806020026020018201604052801561085a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156109b35781818481518110151561090957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506108c4565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a8e57600080fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b60008060006002811115610c3457fe5b846002811115610c4057fe5b1415610c5957610c5287878786610d21565b9150610d17565b60016002811115610c6657fe5b846002811115610c7257fe5b1415610c8a57610c83878685610d3a565b9150610d16565b610c9385610d51565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820433f31b2330c2467d55766d21a1ebc4edbb89e459704843222ec9c2d5e0f8c000029", + "deployedBytecode": "0x608060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a714610085578063610b59251461013d57806385e332cd14610180578063a3f4df7e146101d7578063b2494df314610267578063e009cfde146102d3578063ffa1ad7414610336575b005b34801561009157600080fd5b50610123600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b34801561014957600080fd5b5061017e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610462565b005b34801561018c57600080fd5b506101956106db565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101e357600080fd5b506101ec6106e0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022c578082015181840152602081019050610211565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027357600080fd5b5061027c610719565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102bf5780820151818401526020810190506102a4565b505050509050019250505060405180910390f35b3480156102df57600080fd5b50610334600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bc565b005b34801561034257600080fd5b5061034b610beb565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038b578082015181840152602081019050610370565b50505050905090810190601f1680156103b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561044b57600080fd5b610458858585855a610c24565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561049c57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156104f05750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156104fb57600080fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561057e57600080fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561082b576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610787565b8260405190808252806020026020018201604052801561085a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156109b35781818481518110151561090957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506108c4565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f657600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a8e57600080fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b60008060006002811115610c3457fe5b846002811115610c4057fe5b1415610c5957610c5287878786610d21565b9150610d17565b60016002811115610c6657fe5b846002811115610c7257fe5b1415610c8a57610c83878685610d3a565b9150610d16565b610c9385610d51565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820433f31b2330c2467d55766d21a1ebc4edbb89e459704843222ec9c2d5e0f8c000029", + "sourceMap": "303:4860:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;303:4860:8;;;;;;;", + "deployedSourceMap": "303:4860:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2522:377;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2522:377:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1235:391;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1235:391:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:55:8;;;;;;;;;;;;;;;;;;;;;;;;;;;401:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;401:46:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;401:46:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4423:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4423:738:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:8;;;;;;;;;;;;;;;;;1887:299;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1887:299:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;453:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;453:40:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;453:40:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2522:377;2654:12;2762:1;2739:7;:19;2747:10;2739:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;2731:33;;;;;;;;2846:46;2854:2;2858:5;2865:4;2871:9;2882;2846:7;:46::i;:::-;2836:56;;2522:377;;;;;;:::o;1235:391::-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;1401:1:8;1390:6;1382:20;;;;:59;;;;;550:3;1406:35;;1414:6;1406:35;;;;1382:59;1374:68;;;;;;;;1520:1;1501:7;:15;1509:6;1501:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1493:29;;;;;;;;1550:7;:25;550:3;1550:25;;;;;;;;;;;;;;;;;;;;;;;;;1532:7;:15;1540:6;1532:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1613:6;1585:7;:25;550:3;1585:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1235:391;:::o;499:55::-;550:3;499:55;:::o;401:46::-;;;;;;;;;;;;;;;;;;;;:::o;4423:738::-;4490:9;4549:19;4582:21;4782:22;4571:1;4549:23;;4606:7;:25;550:3;4606:25;;;;;;;;;;;;;;;;;;;;;;;;;4582:49;;4641:132;550:3;4647:33;;:13;:33;;;;4641:132;;;4712:7;:22;4720:13;4712:22;;;;;;;;;;;;;;;;;;;;;;;;;4696:38;;4748:14;;;;;;;4641:132;;;4821:11;4807:26;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;4807:26:8;;;;4782:51;;4891:1;4877:15;;4918:7;:25;550:3;4918:25;;;;;;;;;;;;;;;;;;;;;;;;;4902:41;;4953:180;550:3;4959:33;;:13;:33;;;;4953:180;;;5029:13;5008:5;5014:11;5008:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5072:7;:22;5080:13;5072:22;;;;;;;;;;;;;;;;;;;;;;;;;5056:38;;5108:14;;;;;;;4953:180;;;5149:5;5142:12;;4423:738;;;;:::o;1887:299::-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;2095:6:8;2064:38;;:7;:19;2072:10;2064:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2056:47;;;;;;;;2135:7;:15;2143:6;2135:15;;;;;;;;;;;;;;;;;;;;;;;;;2113:7;:19;2121:10;2113:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2178:1;2160:7;:15;2168:6;2160:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;1887:299;;:::o;453:40::-;;;;;;;;;;;;;;;;;;;;:::o;2905:548::-;3036:12;3307:19;3081;3068:32;;;;;;;;:9;:32;;;;;;;;;3064:383;;;3124:35;3136:2;3140:5;3147:4;3153:5;3124:11;:35::i;:::-;3114:45;;3064:383;;;3191:27;3178:40;;;;;;;;:9;:40;;;;;;;;;3174:273;;;3242:36;3262:2;3266:4;3272:5;3242:19;:36::i;:::-;3232:46;;3174:273;;;3329:19;3343:4;3329:13;:19::i;:::-;3307:41;;3387:1;3372:11;:16;;;;3362:26;;3407:29;3424:11;3407:29;;;;;;;;;;;;;;;;;;;;;;3174:273;3064:383;2905:548;;;;;;;;:::o;3459:309::-;3568:12;3750:1;3747;3740:4;3734:11;3727:4;3721;3717:15;3710:5;3706:2;3699:5;3694:58;3683:69;;3669:93;;;;;;:::o;3774:303::-;3876:12;4059:1;4056;4049:4;4043:11;4036:4;4030;4026:15;4022:2;4015:5;4002:59;3991:70;;3977:94;;;;;:::o;4083:261::-;4152:19;4322:4;4316:11;4309:4;4303;4299:15;4296:1;4289:39;4274:54;;4260:78;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./Module.sol\";\nimport \"./MasterCopy.sol\";\nimport \"./Enum.sol\";\n\n\n/// @title Module Manager - A contract that manages modules that can execute transactions via this contract\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract ModuleManager is SelfAuthorized {\n\n event ContractCreation(address newContract);\n\n string public constant NAME = \"Module Manager\";\n string public constant VERSION = \"0.0.1\";\n address public constant SENTINEL_MODULES = address(0x1);\n\n mapping (address => address) internal modules;\n\n /// @dev Fallback function accepts Ether transactions.\n function ()\n external\n payable\n {\n\n }\n\n function setupModules(address to, bytes data)\n internal\n {\n require(modules[SENTINEL_MODULES] == 0);\n modules[SENTINEL_MODULES] = SENTINEL_MODULES;\n if (to != 0)\n // Setup has to complete successfully or transaction fails.\n require(executeDelegateCall(to, data, gasleft()));\n }\n\n /// @dev Allows to add a module to the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param module Module to be whitelisted.\n function enableModule(Module module)\n public\n authorized\n {\n // Module address cannot be null or sentinel.\n require(address(module) != 0 && address(module) != SENTINEL_MODULES);\n // Module cannot be added twice.\n require(modules[module] == 0);\n modules[module] = modules[SENTINEL_MODULES];\n modules[SENTINEL_MODULES] = module;\n }\n\n /// @dev Allows to remove a module from the whitelist.\n /// This can only be done via a Safe transaction.\n /// @param prevModule Module that pointed to the module to be removed in the linked list\n /// @param module Module to be removed.\n function disableModule(Module prevModule, Module module)\n public\n authorized\n {\n // Validate module address corresponds to module index.\n require(modules[prevModule] == address(module));\n modules[prevModule] = modules[module];\n modules[module] = 0;\n }\n\n /// @dev Allows a Module to execute a Safe transaction without any further confirmations.\n /// @param to Destination address of module transaction.\n /// @param value Ether value of module transaction.\n /// @param data Data payload of module transaction.\n /// @param operation Operation type of module transaction.\n function execTransactionFromModule(address to, uint256 value, bytes data, Enum.Operation operation)\n public\n returns (bool success)\n {\n // Only whitelisted modules are allowed.\n require(modules[msg.sender] != 0);\n // Execute transaction without further confirmations.\n success = execute(to, value, data, operation, gasleft());\n }\n\n function execute(address to, uint256 value, bytes data, Enum.Operation operation, uint256 txGas)\n internal\n returns (bool success)\n {\n if (operation == Enum.Operation.Call)\n success = executeCall(to, value, data, txGas);\n else if (operation == Enum.Operation.DelegateCall)\n success = executeDelegateCall(to, data, txGas);\n else {\n address newContract = executeCreate(data);\n success = newContract != 0;\n emit ContractCreation(newContract);\n }\n }\n\n function executeCall(address to, uint256 value, bytes data, uint256 txGas)\n internal\n returns (bool success)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n }\n }\n\n function executeDelegateCall(address to, bytes data, uint256 txGas)\n internal\n returns (bool success)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n }\n }\n\n function executeCreate(bytes data)\n internal\n returns (address newContract)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n newContract := create(0, add(data, 0x20), mload(data))\n }\n }\n\n /// @dev Returns array of modules.\n /// @return Array of modules.\n function getModules()\n public\n view\n returns (address[])\n {\n // Calculate module count\n uint256 moduleCount = 0;\n address currentModule = modules[SENTINEL_MODULES];\n while(currentModule != SENTINEL_MODULES) {\n currentModule = modules[currentModule];\n moduleCount ++;\n }\n address[] memory array = new address[](moduleCount);\n\n // populate return array\n moduleCount = 0;\n currentModule = modules[SENTINEL_MODULES];\n while(currentModule != SENTINEL_MODULES) {\n array[moduleCount] = currentModule;\n currentModule = modules[currentModule];\n moduleCount ++;\n }\n return array;\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "exportedSymbols": { "ModuleManager": [ - 971 + 1100 ] }, - "id": 972, + "id": 1101, "nodeType": "SourceUnit", "nodes": [ { - "id": 623, + "id": 752, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:6" + "src": "0:23:8" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "./Module.sol", - "id": 624, + "id": 753, "nodeType": "ImportDirective", - "scope": 972, - "sourceUnit": 622, - "src": "24:22:6", + "scope": 1101, + "sourceUnit": 751, + "src": "24:22:8", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 625, + "id": 754, "nodeType": "ImportDirective", - "scope": 972, - "sourceUnit": 581, - "src": "47:26:6", + "scope": 1101, + "sourceUnit": 653, + "src": "47:26:8", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "./Enum.sol", - "id": 626, + "id": 755, "nodeType": "ImportDirective", - "scope": 972, - "sourceUnit": 7, - "src": "74:20:6", + "scope": 1101, + "sourceUnit": 31, + "src": "74:20:8", "symbolAliases": [], "unitAlias": "" }, @@ -203,31 +203,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 627, + "id": 756, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1359, - "src": "329:14:6", + "referencedDeclaration": 1619, + "src": "329:14:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1359", + "typeIdentifier": "t_contract$_SelfAuthorized_$1619", "typeString": "contract SelfAuthorized" } }, - "id": 628, + "id": 757, "nodeType": "InheritanceSpecifier", - "src": "329:14:6" + "src": "329:14:8" } ], "contractDependencies": [ - 1359 + 1619 ], "contractKind": "contract", "documentation": "@title Module Manager - A contract that manages modules that can execute transactions via this contract\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 971, + "id": 1100, "linearizedBaseContracts": [ - 971, - 1359 + 1100, + 1619 ], "name": "ModuleManager", "nodeType": "ContractDefinition", @@ -235,21 +235,21 @@ { "anonymous": false, "documentation": null, - "id": 632, + "id": 761, "name": "ContractCreation", "nodeType": "EventDefinition", "parameters": { - "id": 631, + "id": 760, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 630, + "id": 759, "indexed": false, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 632, - "src": "374:19:6", + "scope": 761, + "src": "374:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -257,10 +257,10 @@ "typeString": "address" }, "typeName": { - "id": 629, + "id": 758, "name": "address", "nodeType": "ElementaryTypeName", - "src": "374:7:6", + "src": "374:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -270,17 +270,17 @@ "visibility": "internal" } ], - "src": "373:21:6" + "src": "373:21:8" }, - "src": "351:44:6" + "src": "351:44:8" }, { "constant": true, - "id": 635, + "id": 764, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 971, - "src": "401:46:6", + "scope": 1100, + "src": "401:46:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -288,10 +288,10 @@ "typeString": "string" }, "typeName": { - "id": 633, + "id": 762, "name": "string", "nodeType": "ElementaryTypeName", - "src": "401:6:6", + "src": "401:6:8", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -300,14 +300,14 @@ "value": { "argumentTypes": null, "hexValue": "4d6f64756c65204d616e61676572", - "id": 634, + "id": 763, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "431:16:6", + "src": "431:16:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_12aaa44a1bae367a1e1d9881f5d80283afded6373c2a1ca586db420944084efb", @@ -319,11 +319,11 @@ }, { "constant": true, - "id": 638, + "id": 767, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 971, - "src": "453:40:6", + "scope": 1100, + "src": "453:40:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -331,10 +331,10 @@ "typeString": "string" }, "typeName": { - "id": 636, + "id": 765, "name": "string", "nodeType": "ElementaryTypeName", - "src": "453:6:6", + "src": "453:6:8", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -343,14 +343,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 637, + "id": 766, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "486:7:6", + "src": "486:7:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -362,11 +362,11 @@ }, { "constant": true, - "id": 643, + "id": 772, "name": "SENTINEL_MODULES", "nodeType": "VariableDeclaration", - "scope": 971, - "src": "499:55:6", + "scope": 1100, + "src": "499:55:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -374,10 +374,10 @@ "typeString": "address" }, "typeName": { - "id": 639, + "id": 768, "name": "address", "nodeType": "ElementaryTypeName", - "src": "499:7:6", + "src": "499:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -389,14 +389,14 @@ { "argumentTypes": null, "hexValue": "307831", - "id": 641, + "id": 770, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "550:3:6", + "src": "550:3:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -412,20 +412,20 @@ "typeString": "int_const 1" } ], - "id": 640, + "id": 769, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "542:7:6", + "src": "542:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 642, + "id": 771, "isConstant": false, "isLValue": false, "isPure": true, @@ -433,7 +433,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "542:12:6", + "src": "542:12:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -443,11 +443,11 @@ }, { "constant": false, - "id": 647, + "id": 776, "name": "modules", "nodeType": "VariableDeclaration", - "scope": 971, - "src": "561:45:6", + "scope": 1100, + "src": "561:45:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -455,28 +455,28 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 646, + "id": 775, "keyType": { - "id": 644, + "id": 773, "name": "address", "nodeType": "ElementaryTypeName", - "src": "570:7:6", + "src": "570:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "561:28:6", + "src": "561:28:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" }, "valueType": { - "id": 645, + "id": 774, "name": "address", "nodeType": "ElementaryTypeName", - "src": "581:7:6", + "src": "581:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -488,13 +488,13 @@ }, { "body": { - "id": 650, + "id": 779, "nodeType": "Block", - "src": "721:8:6", + "src": "721:8:8", "statements": [] }, "documentation": "@dev Fallback function accepts Ether transactions.", - "id": 651, + "id": 780, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -502,29 +502,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 648, + "id": 777, "nodeType": "ParameterList", "parameters": [], - "src": "681:2:6" + "src": "681:2:8" }, "payable": true, "returnParameters": { - "id": 649, + "id": 778, "nodeType": "ParameterList", "parameters": [], - "src": "721:0:6" + "src": "721:0:8" }, - "scope": 971, - "src": "672:57:6", + "scope": 1100, + "src": "672:57:8", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 685, + "id": 814, "nodeType": "Block", - "src": "802:266:6", + "src": "802:266:8", "statements": [ { "expression": { @@ -536,7 +536,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 663, + "id": 792, "isConstant": false, "isLValue": false, "isPure": false, @@ -545,26 +545,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 659, + "id": 788, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "820:7:6", + "referencedDeclaration": 776, + "src": "820:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 661, + "id": 790, "indexExpression": { "argumentTypes": null, - "id": 660, + "id": 789, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "828:16:6", + "referencedDeclaration": 772, + "src": "828:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -575,7 +575,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "820:25:6", + "src": "820:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -586,14 +586,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 662, + "id": 791, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "849:1:6", + "src": "849:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -601,7 +601,7 @@ }, "value": "0" }, - "src": "820:30:6", + "src": "820:30:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -615,21 +615,21 @@ "typeString": "bool" } ], - "id": 658, + "id": 787, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "812:7:6", + "referencedDeclaration": 2601, + "src": "812:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 664, + "id": 793, "isConstant": false, "isLValue": false, "isPure": false, @@ -637,20 +637,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "812:39:6", + "src": "812:39:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 665, + "id": 794, "nodeType": "ExpressionStatement", - "src": "812:39:6" + "src": "812:39:8" }, { "expression": { "argumentTypes": null, - "id": 670, + "id": 799, "isConstant": false, "isLValue": false, "isPure": false, @@ -659,26 +659,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 666, + "id": 795, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "861:7:6", + "referencedDeclaration": 776, + "src": "861:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 668, + "id": 797, "indexExpression": { "argumentTypes": null, - "id": 667, + "id": 796, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "869:16:6", + "referencedDeclaration": 772, + "src": "869:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -689,7 +689,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "861:25:6", + "src": "861:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -699,26 +699,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 669, + "id": 798, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "889:16:6", + "referencedDeclaration": 772, + "src": "889:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "861:44:6", + "src": "861:44:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 671, + "id": 800, "nodeType": "ExpressionStatement", - "src": "861:44:6" + "src": "861:44:8" }, { "condition": { @@ -727,19 +727,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 674, + "id": 803, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 672, + "id": 801, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 653, - "src": "919:2:6", + "referencedDeclaration": 782, + "src": "919:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -750,14 +750,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 673, + "id": 802, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "925:1:6", + "src": "925:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -765,16 +765,16 @@ }, "value": "0" }, - "src": "919:7:6", + "src": "919:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 684, + "id": 813, "nodeType": "IfStatement", - "src": "915:146:6", + "src": "915:146:8", "trueBody": { "expression": { "argumentTypes": null, @@ -784,12 +784,12 @@ "arguments": [ { "argumentTypes": null, - "id": 677, + "id": 806, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 653, - "src": "1040:2:6", + "referencedDeclaration": 782, + "src": "1040:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -797,12 +797,12 @@ }, { "argumentTypes": null, - "id": 678, + "id": 807, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 655, - "src": "1044:4:6", + "referencedDeclaration": 784, + "src": "1044:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -813,18 +813,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 679, + "id": 808, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "1050:7:6", + "referencedDeclaration": 2591, + "src": "1050:7:8", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 680, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, @@ -832,7 +832,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1050:9:6", + "src": "1050:9:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -854,18 +854,18 @@ "typeString": "uint256" } ], - "id": 676, + "id": 805, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "1020:19:6", + "referencedDeclaration": 1017, + "src": "1020:19:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,bytes memory,uint256) returns (bool)" } }, - "id": 681, + "id": 810, "isConstant": false, "isLValue": false, "isPure": false, @@ -873,7 +873,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1020:40:6", + "src": "1020:40:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -887,21 +887,21 @@ "typeString": "bool" } ], - "id": 675, + "id": 804, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1012:7:6", + "referencedDeclaration": 2601, + "src": "1012:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 682, + "id": 811, "isConstant": false, "isLValue": false, "isPure": false, @@ -909,21 +909,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1012:49:6", + "src": "1012:49:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 683, + "id": 812, "nodeType": "ExpressionStatement", - "src": "1012:49:6" + "src": "1012:49:8" } } ] }, "documentation": null, - "id": 686, + "id": 815, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -931,16 +931,16 @@ "name": "setupModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 656, + "id": 785, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 653, + "id": 782, "name": "to", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "757:10:6", + "scope": 815, + "src": "757:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -948,10 +948,10 @@ "typeString": "address" }, "typeName": { - "id": 652, + "id": 781, "name": "address", "nodeType": "ElementaryTypeName", - "src": "757:7:6", + "src": "757:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -962,11 +962,11 @@ }, { "constant": false, - "id": 655, + "id": 784, "name": "data", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "769:10:6", + "scope": 815, + "src": "769:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -974,10 +974,10 @@ "typeString": "bytes" }, "typeName": { - "id": 654, + "id": 783, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "769:5:6", + "src": "769:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -987,26 +987,26 @@ "visibility": "internal" } ], - "src": "756:24:6" + "src": "756:24:8" }, "payable": false, "returnParameters": { - "id": 657, + "id": 786, "nodeType": "ParameterList", "parameters": [], - "src": "802:0:6" + "src": "802:0:8" }, - "scope": 971, - "src": "735:333:6", + "scope": 1100, + "src": "735:333:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 729, + "id": 858, "nodeType": "Block", - "src": "1310:316:6", + "src": "1310:316:8", "statements": [ { "expression": { @@ -1018,7 +1018,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 704, + "id": 833, "isConstant": false, "isLValue": false, "isPure": false, @@ -1029,7 +1029,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 698, + "id": 827, "isConstant": false, "isLValue": false, "isPure": false, @@ -1039,14 +1039,14 @@ "arguments": [ { "argumentTypes": null, - "id": 695, + "id": 824, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "1390:6:6", + "referencedDeclaration": 817, + "src": "1390:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } } @@ -1054,24 +1054,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } ], - "id": 694, + "id": 823, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1382:7:6", + "src": "1382:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 696, + "id": 825, "isConstant": false, "isLValue": false, "isPure": false, @@ -1079,7 +1079,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1382:15:6", + "src": "1382:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1090,14 +1090,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 697, + "id": 826, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1401:1:6", + "src": "1401:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1105,7 +1105,7 @@ }, "value": "0" }, - "src": "1382:20:6", + "src": "1382:20:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1119,7 +1119,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 703, + "id": 832, "isConstant": false, "isLValue": false, "isPure": false, @@ -1129,14 +1129,14 @@ "arguments": [ { "argumentTypes": null, - "id": 700, + "id": 829, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "1414:6:6", + "referencedDeclaration": 817, + "src": "1414:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } } @@ -1144,24 +1144,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } ], - "id": 699, + "id": 828, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1406:7:6", + "src": "1406:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 701, + "id": 830, "isConstant": false, "isLValue": false, "isPure": false, @@ -1169,7 +1169,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1406:15:6", + "src": "1406:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1179,24 +1179,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 702, + "id": 831, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "1425:16:6", + "referencedDeclaration": 772, + "src": "1425:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1406:35:6", + "src": "1406:35:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1382:59:6", + "src": "1382:59:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1210,21 +1210,21 @@ "typeString": "bool" } ], - "id": 693, + "id": 822, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1374:7:6", + "referencedDeclaration": 2601, + "src": "1374:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 705, + "id": 834, "isConstant": false, "isLValue": false, "isPure": false, @@ -1232,15 +1232,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1374:68:6", + "src": "1374:68:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 706, + "id": 835, "nodeType": "ExpressionStatement", - "src": "1374:68:6" + "src": "1374:68:8" }, { "expression": { @@ -1252,7 +1252,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 712, + "id": 841, "isConstant": false, "isLValue": false, "isPure": false, @@ -1261,28 +1261,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 708, + "id": 837, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "1501:7:6", + "referencedDeclaration": 776, + "src": "1501:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 710, + "id": 839, "indexExpression": { "argumentTypes": null, - "id": 709, + "id": 838, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "1509:6:6", + "referencedDeclaration": 817, + "src": "1509:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -1291,7 +1291,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1501:15:6", + "src": "1501:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1302,14 +1302,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 711, + "id": 840, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1520:1:6", + "src": "1520:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1317,7 +1317,7 @@ }, "value": "0" }, - "src": "1501:20:6", + "src": "1501:20:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1331,21 +1331,21 @@ "typeString": "bool" } ], - "id": 707, + "id": 836, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1493:7:6", + "referencedDeclaration": 2601, + "src": "1493:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 713, + "id": 842, "isConstant": false, "isLValue": false, "isPure": false, @@ -1353,20 +1353,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1493:29:6", + "src": "1493:29:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 714, + "id": 843, "nodeType": "ExpressionStatement", - "src": "1493:29:6" + "src": "1493:29:8" }, { "expression": { "argumentTypes": null, - "id": 721, + "id": 850, "isConstant": false, "isLValue": false, "isPure": false, @@ -1375,28 +1375,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 715, + "id": 844, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "1532:7:6", + "referencedDeclaration": 776, + "src": "1532:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 717, + "id": 846, "indexExpression": { "argumentTypes": null, - "id": 716, + "id": 845, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "1540:6:6", + "referencedDeclaration": 817, + "src": "1540:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -1405,7 +1405,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1532:15:6", + "src": "1532:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1417,26 +1417,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 718, + "id": 847, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "1550:7:6", + "referencedDeclaration": 776, + "src": "1550:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 720, + "id": 849, "indexExpression": { "argumentTypes": null, - "id": 719, + "id": 848, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "1558:16:6", + "referencedDeclaration": 772, + "src": "1558:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1447,26 +1447,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1550:25:6", + "src": "1550:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1532:43:6", + "src": "1532:43:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 722, + "id": 851, "nodeType": "ExpressionStatement", - "src": "1532:43:6" + "src": "1532:43:8" }, { "expression": { "argumentTypes": null, - "id": 727, + "id": 856, "isConstant": false, "isLValue": false, "isPure": false, @@ -1475,26 +1475,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 723, + "id": 852, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "1585:7:6", + "referencedDeclaration": 776, + "src": "1585:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 725, + "id": 854, "indexExpression": { "argumentTypes": null, - "id": 724, + "id": 853, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "1593:16:6", + "referencedDeclaration": 772, + "src": "1593:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1505,7 +1505,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1585:25:6", + "src": "1585:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1515,83 +1515,83 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 726, + "id": 855, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "1613:6:6", + "referencedDeclaration": 817, + "src": "1613:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, - "src": "1585:34:6", + "src": "1585:34:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 728, + "id": 857, "nodeType": "ExpressionStatement", - "src": "1585:34:6" + "src": "1585:34:8" } ] }, "documentation": "@dev Allows to add a module to the whitelist.\n This can only be done via a Safe transaction.\n @param module Module to be whitelisted.", - "id": 730, + "id": 859, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 691, + "id": 820, "modifierName": { "argumentTypes": null, - "id": 690, + "id": 819, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "1295:10:6", + "referencedDeclaration": 1618, + "src": "1295:10:8", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1295:10:6" + "src": "1295:10:8" } ], "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 689, + "id": 818, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 688, + "id": 817, "name": "module", "nodeType": "VariableDeclaration", - "scope": 730, - "src": "1257:13:6", + "scope": 859, + "src": "1257:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 687, + "id": 816, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "1257:6:6", + "referencedDeclaration": 750, + "src": "1257:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -1599,26 +1599,26 @@ "visibility": "internal" } ], - "src": "1256:15:6" + "src": "1256:15:8" }, "payable": false, "returnParameters": { - "id": 692, + "id": 821, "nodeType": "ParameterList", "parameters": [], - "src": "1310:0:6" + "src": "1310:0:8" }, - "scope": 971, - "src": "1235:391:6", + "scope": 1100, + "src": "1235:391:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 763, + "id": 892, "nodeType": "Block", - "src": "1982:204:6", + "src": "1982:204:8", "statements": [ { "expression": { @@ -1630,7 +1630,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 746, + "id": 875, "isConstant": false, "isLValue": false, "isPure": false, @@ -1639,28 +1639,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 740, + "id": 869, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2064:7:6", + "referencedDeclaration": 776, + "src": "2064:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 742, + "id": 871, "indexExpression": { "argumentTypes": null, - "id": 741, + "id": 870, "name": "prevModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 732, - "src": "2072:10:6", + "referencedDeclaration": 861, + "src": "2072:10:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -1669,7 +1669,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2064:19:6", + "src": "2064:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1682,14 +1682,14 @@ "arguments": [ { "argumentTypes": null, - "id": 744, + "id": 873, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "2095:6:6", + "referencedDeclaration": 863, + "src": "2095:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } } @@ -1697,24 +1697,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } ], - "id": 743, + "id": 872, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2087:7:6", + "src": "2087:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 745, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, @@ -1722,13 +1722,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2087:15:6", + "src": "2087:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2064:38:6", + "src": "2064:38:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1742,21 +1742,21 @@ "typeString": "bool" } ], - "id": 739, + "id": 868, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2056:7:6", + "referencedDeclaration": 2601, + "src": "2056:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 747, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, @@ -1764,20 +1764,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2056:47:6", + "src": "2056:47:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 748, + "id": 877, "nodeType": "ExpressionStatement", - "src": "2056:47:6" + "src": "2056:47:8" }, { "expression": { "argumentTypes": null, - "id": 755, + "id": 884, "isConstant": false, "isLValue": false, "isPure": false, @@ -1786,28 +1786,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 749, + "id": 878, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2113:7:6", + "referencedDeclaration": 776, + "src": "2113:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 751, + "id": 880, "indexExpression": { "argumentTypes": null, - "id": 750, + "id": 879, "name": "prevModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 732, - "src": "2121:10:6", + "referencedDeclaration": 861, + "src": "2121:10:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -1816,7 +1816,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2113:19:6", + "src": "2113:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1828,28 +1828,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 752, + "id": 881, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2135:7:6", + "referencedDeclaration": 776, + "src": "2135:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 754, + "id": 883, "indexExpression": { "argumentTypes": null, - "id": 753, + "id": 882, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "2143:6:6", + "referencedDeclaration": 863, + "src": "2143:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -1858,26 +1858,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2135:15:6", + "src": "2135:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2113:37:6", + "src": "2113:37:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 756, + "id": 885, "nodeType": "ExpressionStatement", - "src": "2113:37:6" + "src": "2113:37:8" }, { "expression": { "argumentTypes": null, - "id": 761, + "id": 890, "isConstant": false, "isLValue": false, "isPure": false, @@ -1886,28 +1886,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 757, + "id": 886, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2160:7:6", + "referencedDeclaration": 776, + "src": "2160:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 759, + "id": 888, "indexExpression": { "argumentTypes": null, - "id": 758, + "id": 887, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "2168:6:6", + "referencedDeclaration": 863, + "src": "2168:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -1916,7 +1916,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2160:15:6", + "src": "2160:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1927,14 +1927,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 760, + "id": 889, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2178:1:6", + "src": "2178:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1942,72 +1942,72 @@ }, "value": "0" }, - "src": "2160:19:6", + "src": "2160:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 762, + "id": 891, "nodeType": "ExpressionStatement", - "src": "2160:19:6" + "src": "2160:19:8" } ] }, "documentation": "@dev Allows to remove a module from the whitelist.\n This can only be done via a Safe transaction.\n @param prevModule Module that pointed to the module to be removed in the linked list\n @param module Module to be removed.", - "id": 764, + "id": 893, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 737, + "id": 866, "modifierName": { "argumentTypes": null, - "id": 736, + "id": 865, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "1967:10:6", + "referencedDeclaration": 1618, + "src": "1967:10:8", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1967:10:6" + "src": "1967:10:8" } ], "name": "disableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 735, + "id": 864, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 732, + "id": 861, "name": "prevModule", "nodeType": "VariableDeclaration", - "scope": 764, - "src": "1910:17:6", + "scope": 893, + "src": "1910:17:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 731, + "id": 860, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "1910:6:6", + "referencedDeclaration": 750, + "src": "1910:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -2016,26 +2016,26 @@ }, { "constant": false, - "id": 734, + "id": 863, "name": "module", "nodeType": "VariableDeclaration", - "scope": 764, - "src": "1929:13:6", + "scope": 893, + "src": "1929:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 733, + "id": 862, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "1929:6:6", + "referencedDeclaration": 750, + "src": "1929:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -2043,26 +2043,26 @@ "visibility": "internal" } ], - "src": "1909:34:6" + "src": "1909:34:8" }, "payable": false, "returnParameters": { - "id": 738, + "id": 867, "nodeType": "ParameterList", "parameters": [], - "src": "1982:0:6" + "src": "1982:0:8" }, - "scope": 971, - "src": "1887:299:6", + "scope": 1100, + "src": "1887:299:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 797, + "id": 926, "nodeType": "Block", - "src": "2672:227:6", + "src": "2672:227:8", "statements": [ { "expression": { @@ -2074,7 +2074,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 783, + "id": 912, "isConstant": false, "isLValue": false, "isPure": false, @@ -2083,34 +2083,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 778, + "id": 907, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2739:7:6", + "referencedDeclaration": 776, + "src": "2739:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 781, + "id": 910, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 779, + "id": 908, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "2747:3:6", + "referencedDeclaration": 2598, + "src": "2747:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 780, + "id": 909, "isConstant": false, "isLValue": false, "isPure": false, @@ -2118,7 +2118,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2747:10:6", + "src": "2747:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2129,7 +2129,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2739:19:6", + "src": "2739:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2140,14 +2140,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 782, + "id": 911, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2762:1:6", + "src": "2762:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2155,7 +2155,7 @@ }, "value": "0" }, - "src": "2739:24:6", + "src": "2739:24:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2169,21 +2169,21 @@ "typeString": "bool" } ], - "id": 777, + "id": 906, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2731:7:6", + "referencedDeclaration": 2601, + "src": "2731:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 784, + "id": 913, "isConstant": false, "isLValue": false, "isPure": false, @@ -2191,32 +2191,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2731:33:6", + "src": "2731:33:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 785, + "id": 914, "nodeType": "ExpressionStatement", - "src": "2731:33:6" + "src": "2731:33:8" }, { "expression": { "argumentTypes": null, - "id": 795, + "id": 924, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 786, + "id": 915, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 775, - "src": "2836:7:6", + "referencedDeclaration": 904, + "src": "2836:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2229,12 +2229,12 @@ "arguments": [ { "argumentTypes": null, - "id": 788, + "id": 917, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 766, - "src": "2854:2:6", + "referencedDeclaration": 895, + "src": "2854:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2242,12 +2242,12 @@ }, { "argumentTypes": null, - "id": 789, + "id": 918, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "2858:5:6", + "referencedDeclaration": 897, + "src": "2858:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2255,12 +2255,12 @@ }, { "argumentTypes": null, - "id": 790, + "id": 919, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "2865:4:6", + "referencedDeclaration": 899, + "src": "2865:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2268,14 +2268,14 @@ }, { "argumentTypes": null, - "id": 791, + "id": 920, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "2871:9:6", + "referencedDeclaration": 901, + "src": "2871:9:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -2284,18 +2284,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 792, + "id": 921, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "2882:7:6", + "referencedDeclaration": 2591, + "src": "2882:7:8", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 793, + "id": 922, "isConstant": false, "isLValue": false, "isPure": false, @@ -2303,7 +2303,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2882:9:6", + "src": "2882:9:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2325,7 +2325,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -2333,18 +2333,18 @@ "typeString": "uint256" } ], - "id": 787, + "id": 916, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 860, - "src": "2846:7:6", + "referencedDeclaration": 989, + "src": "2846:7:8", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" } }, - "id": 794, + "id": 923, "isConstant": false, "isLValue": false, "isPure": false, @@ -2352,26 +2352,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2846:46:6", + "src": "2846:46:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2836:56:6", + "src": "2836:56:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 796, + "id": 925, "nodeType": "ExpressionStatement", - "src": "2836:56:6" + "src": "2836:56:8" } ] }, "documentation": "@dev Allows a Module to execute a Safe transaction without any further confirmations.\n @param to Destination address of module transaction.\n @param value Ether value of module transaction.\n @param data Data payload of module transaction.\n @param operation Operation type of module transaction.", - "id": 798, + "id": 927, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2379,16 +2379,16 @@ "name": "execTransactionFromModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 773, + "id": 902, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 766, + "id": 895, "name": "to", "nodeType": "VariableDeclaration", - "scope": 798, - "src": "2557:10:6", + "scope": 927, + "src": "2557:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2396,10 +2396,10 @@ "typeString": "address" }, "typeName": { - "id": 765, + "id": 894, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2557:7:6", + "src": "2557:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2410,11 +2410,11 @@ }, { "constant": false, - "id": 768, + "id": 897, "name": "value", "nodeType": "VariableDeclaration", - "scope": 798, - "src": "2569:13:6", + "scope": 927, + "src": "2569:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2422,10 +2422,10 @@ "typeString": "uint256" }, "typeName": { - "id": 767, + "id": 896, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2569:7:6", + "src": "2569:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2436,11 +2436,11 @@ }, { "constant": false, - "id": 770, + "id": 899, "name": "data", "nodeType": "VariableDeclaration", - "scope": 798, - "src": "2584:10:6", + "scope": 927, + "src": "2584:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2448,10 +2448,10 @@ "typeString": "bytes" }, "typeName": { - "id": 769, + "id": 898, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2584:5:6", + "src": "2584:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2462,26 +2462,26 @@ }, { "constant": false, - "id": 772, + "id": 901, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 798, - "src": "2596:24:6", + "scope": 927, + "src": "2596:24:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 771, + "id": 900, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "2596:14:6", + "referencedDeclaration": 29, + "src": "2596:14:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -2489,20 +2489,20 @@ "visibility": "internal" } ], - "src": "2556:65:6" + "src": "2556:65:8" }, "payable": false, "returnParameters": { - "id": 776, + "id": 905, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 775, + "id": 904, "name": "success", "nodeType": "VariableDeclaration", - "scope": 798, - "src": "2654:12:6", + "scope": 927, + "src": "2654:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2510,10 +2510,10 @@ "typeString": "bool" }, "typeName": { - "id": 774, + "id": 903, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2654:4:6", + "src": "2654:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2523,42 +2523,42 @@ "visibility": "internal" } ], - "src": "2653:14:6" + "src": "2653:14:8" }, - "scope": 971, - "src": "2522:377:6", + "scope": 1100, + "src": "2522:377:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 859, + "id": 988, "nodeType": "Block", - "src": "3054:399:6", + "src": "3054:399:8", "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, - "id": 817, + "id": 946, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 813, + "id": 942, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 806, - "src": "3068:9:6", + "referencedDeclaration": 935, + "src": "3068:9:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -2570,32 +2570,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 814, + "id": 943, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "3081:4:6", + "referencedDeclaration": 30, + "src": "3081:4:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$6_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", "typeString": "type(contract Enum)" } }, - "id": 815, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "3081:14:6", + "referencedDeclaration": 29, + "src": "3081:14:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$5_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 816, + "id": 945, "isConstant": false, "isLValue": false, "isPure": true, @@ -2603,13 +2603,13 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3081:19:6", + "src": "3081:19:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, - "src": "3068:32:6", + "src": "3068:32:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2619,24 +2619,24 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, - "id": 831, + "id": 960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 827, + "id": 956, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 806, - "src": "3178:9:6", + "referencedDeclaration": 935, + "src": "3178:9:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -2648,32 +2648,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 828, + "id": 957, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "3191:4:6", + "referencedDeclaration": 30, + "src": "3191:4:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$6_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", "typeString": "type(contract Enum)" } }, - "id": 829, + "id": 958, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "3191:14:6", + "referencedDeclaration": 29, + "src": "3191:14:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$5_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 830, + "id": 959, "isConstant": false, "isLValue": false, "isPure": true, @@ -2681,35 +2681,35 @@ "memberName": "DelegateCall", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3191:27:6", + "src": "3191:27:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, - "src": "3178:40:6", + "src": "3178:40:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 856, + "id": 985, "nodeType": "Block", - "src": "3293:154:6", + "src": "3293:154:8", "statements": [ { "assignments": [ - 841 + 970 ], "declarations": [ { "constant": false, - "id": 841, + "id": 970, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "3307:19:6", + "scope": 989, + "src": "3307:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2717,10 +2717,10 @@ "typeString": "address" }, "typeName": { - "id": 840, + "id": 969, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3307:7:6", + "src": "3307:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2730,18 +2730,18 @@ "visibility": "internal" } ], - "id": 845, + "id": 974, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 843, + "id": 972, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 804, - "src": "3343:4:6", + "referencedDeclaration": 933, + "src": "3343:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2755,18 +2755,18 @@ "typeString": "bytes memory" } ], - "id": 842, + "id": 971, "name": "executeCreate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 897, - "src": "3329:13:6", + "referencedDeclaration": 1026, + "src": "3329:13:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", "typeString": "function (bytes memory) returns (address)" } }, - "id": 844, + "id": 973, "isConstant": false, "isLValue": false, "isPure": false, @@ -2774,31 +2774,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3329:19:6", + "src": "3329:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "3307:41:6" + "src": "3307:41:8" }, { "expression": { "argumentTypes": null, - "id": 850, + "id": 979, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 846, + "id": 975, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 811, - "src": "3362:7:6", + "referencedDeclaration": 940, + "src": "3362:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2812,19 +2812,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 849, + "id": 978, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 847, + "id": 976, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 841, - "src": "3372:11:6", + "referencedDeclaration": 970, + "src": "3372:11:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2835,14 +2835,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 848, + "id": 977, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3387:1:6", + "src": "3387:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2850,21 +2850,21 @@ }, "value": "0" }, - "src": "3372:16:6", + "src": "3372:16:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3362:26:6", + "src": "3362:26:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 851, + "id": 980, "nodeType": "ExpressionStatement", - "src": "3362:26:6" + "src": "3362:26:8" }, { "eventCall": { @@ -2872,12 +2872,12 @@ "arguments": [ { "argumentTypes": null, - "id": 853, + "id": 982, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 841, - "src": "3424:11:6", + "referencedDeclaration": 970, + "src": "3424:11:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2891,18 +2891,18 @@ "typeString": "address" } ], - "id": 852, + "id": 981, "name": "ContractCreation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, - "src": "3407:16:6", + "referencedDeclaration": 761, + "src": "3407:16:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 854, + "id": 983, "isConstant": false, "isLValue": false, "isPure": false, @@ -2910,37 +2910,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3407:29:6", + "src": "3407:29:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 855, + "id": 984, "nodeType": "EmitStatement", - "src": "3402:34:6" + "src": "3402:34:8" } ] }, - "id": 857, + "id": 986, "nodeType": "IfStatement", - "src": "3174:273:6", + "src": "3174:273:8", "trueBody": { "expression": { "argumentTypes": null, - "id": 838, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 832, + "id": 961, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 811, - "src": "3232:7:6", + "referencedDeclaration": 940, + "src": "3232:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2953,12 +2953,12 @@ "arguments": [ { "argumentTypes": null, - "id": 834, + "id": 963, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "3262:2:6", + "referencedDeclaration": 929, + "src": "3262:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2966,12 +2966,12 @@ }, { "argumentTypes": null, - "id": 835, + "id": 964, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 804, - "src": "3266:4:6", + "referencedDeclaration": 933, + "src": "3266:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2979,12 +2979,12 @@ }, { "argumentTypes": null, - "id": 836, + "id": 965, "name": "txGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 808, - "src": "3272:5:6", + "referencedDeclaration": 937, + "src": "3272:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3006,18 +3006,18 @@ "typeString": "uint256" } ], - "id": 833, + "id": 962, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "3242:19:6", + "referencedDeclaration": 1017, + "src": "3242:19:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,bytes memory,uint256) returns (bool)" } }, - "id": 837, + "id": 966, "isConstant": false, "isLValue": false, "isPure": false, @@ -3025,42 +3025,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3242:36:6", + "src": "3242:36:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3232:46:6", + "src": "3232:46:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 839, + "id": 968, "nodeType": "ExpressionStatement", - "src": "3232:46:6" + "src": "3232:46:8" } }, - "id": 858, + "id": 987, "nodeType": "IfStatement", - "src": "3064:383:6", + "src": "3064:383:8", "trueBody": { "expression": { "argumentTypes": null, - "id": 825, + "id": 954, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 818, + "id": 947, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 811, - "src": "3114:7:6", + "referencedDeclaration": 940, + "src": "3114:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3073,12 +3073,12 @@ "arguments": [ { "argumentTypes": null, - "id": 820, + "id": 949, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "3136:2:6", + "referencedDeclaration": 929, + "src": "3136:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3086,12 +3086,12 @@ }, { "argumentTypes": null, - "id": 821, + "id": 950, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "3140:5:6", + "referencedDeclaration": 931, + "src": "3140:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3099,12 +3099,12 @@ }, { "argumentTypes": null, - "id": 822, + "id": 951, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 804, - "src": "3147:4:6", + "referencedDeclaration": 933, + "src": "3147:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3112,12 +3112,12 @@ }, { "argumentTypes": null, - "id": 823, + "id": 952, "name": "txGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 808, - "src": "3153:5:6", + "referencedDeclaration": 937, + "src": "3153:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3143,18 +3143,18 @@ "typeString": "uint256" } ], - "id": 819, + "id": 948, "name": "executeCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 875, - "src": "3124:11:6", + "referencedDeclaration": 1004, + "src": "3124:11:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,uint256) returns (bool)" } }, - "id": 824, + "id": 953, "isConstant": false, "isLValue": false, "isPure": false, @@ -3162,27 +3162,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3124:35:6", + "src": "3124:35:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3114:45:6", + "src": "3114:45:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 826, + "id": 955, "nodeType": "ExpressionStatement", - "src": "3114:45:6" + "src": "3114:45:8" } } ] }, "documentation": null, - "id": 860, + "id": 989, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3190,16 +3190,16 @@ "name": "execute", "nodeType": "FunctionDefinition", "parameters": { - "id": 809, + "id": 938, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 800, + "id": 929, "name": "to", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "2922:10:6", + "scope": 989, + "src": "2922:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3207,10 +3207,10 @@ "typeString": "address" }, "typeName": { - "id": 799, + "id": 928, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2922:7:6", + "src": "2922:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3221,11 +3221,11 @@ }, { "constant": false, - "id": 802, + "id": 931, "name": "value", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "2934:13:6", + "scope": 989, + "src": "2934:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3233,10 +3233,10 @@ "typeString": "uint256" }, "typeName": { - "id": 801, + "id": 930, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2934:7:6", + "src": "2934:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3247,11 +3247,11 @@ }, { "constant": false, - "id": 804, + "id": 933, "name": "data", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "2949:10:6", + "scope": 989, + "src": "2949:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3259,10 +3259,10 @@ "typeString": "bytes" }, "typeName": { - "id": 803, + "id": 932, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2949:5:6", + "src": "2949:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3273,26 +3273,26 @@ }, { "constant": false, - "id": 806, + "id": 935, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "2961:24:6", + "scope": 989, + "src": "2961:24:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 805, + "id": 934, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "2961:14:6", + "referencedDeclaration": 29, + "src": "2961:14:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -3301,11 +3301,11 @@ }, { "constant": false, - "id": 808, + "id": 937, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "2987:13:6", + "scope": 989, + "src": "2987:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3313,10 +3313,10 @@ "typeString": "uint256" }, "typeName": { - "id": 807, + "id": 936, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2987:7:6", + "src": "2987:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3326,20 +3326,20 @@ "visibility": "internal" } ], - "src": "2921:80:6" + "src": "2921:80:8" }, "payable": false, "returnParameters": { - "id": 812, + "id": 941, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 811, + "id": 940, "name": "success", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "3036:12:6", + "scope": 989, + "src": "3036:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3347,10 +3347,10 @@ "typeString": "bool" }, "typeName": { - "id": 810, + "id": 939, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3036:4:6", + "src": "3036:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3360,86 +3360,86 @@ "visibility": "internal" } ], - "src": "3035:14:6" + "src": "3035:14:8" }, - "scope": 971, - "src": "2905:548:6", + "scope": 1100, + "src": "2905:548:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 874, + "id": 1003, "nodeType": "Block", - "src": "3586:182:6", + "src": "3586:182:8", "statements": [ { "externalReferences": [ { "data": { - "declaration": 866, + "declaration": 995, "isOffset": false, "isSlot": false, - "src": "3740:4:6", + "src": "3740:4:8", "valueSize": 1 } }, { "data": { - "declaration": 866, + "declaration": 995, "isOffset": false, "isSlot": false, - "src": "3721:4:6", + "src": "3721:4:8", "valueSize": 1 } }, { "success": { - "declaration": 871, + "declaration": 1000, "isOffset": false, "isSlot": false, - "src": "3683:7:6", + "src": "3683:7:8", "valueSize": 1 } }, { "txGas": { - "declaration": 868, + "declaration": 997, "isOffset": false, "isSlot": false, - "src": "3699:5:6", + "src": "3699:5:8", "valueSize": 1 } }, { "to": { - "declaration": 862, + "declaration": 991, "isOffset": false, "isSlot": false, - "src": "3706:2:6", + "src": "3706:2:8", "valueSize": 1 } }, { "value": { - "declaration": 864, + "declaration": 993, "isOffset": false, "isSlot": false, - "src": "3710:5:6", + "src": "3710:5:8", "valueSize": 1 } } ], - "id": 873, + "id": 1002, "nodeType": "InlineAssembly", "operations": "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "3660:108:6" + "src": "3660:108:8" } ] }, "documentation": null, - "id": 875, + "id": 1004, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3447,16 +3447,16 @@ "name": "executeCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 869, + "id": 998, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 862, + "id": 991, "name": "to", "nodeType": "VariableDeclaration", - "scope": 875, - "src": "3480:10:6", + "scope": 1004, + "src": "3480:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3464,10 +3464,10 @@ "typeString": "address" }, "typeName": { - "id": 861, + "id": 990, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3480:7:6", + "src": "3480:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3478,11 +3478,11 @@ }, { "constant": false, - "id": 864, + "id": 993, "name": "value", "nodeType": "VariableDeclaration", - "scope": 875, - "src": "3492:13:6", + "scope": 1004, + "src": "3492:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3490,10 +3490,10 @@ "typeString": "uint256" }, "typeName": { - "id": 863, + "id": 992, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3492:7:6", + "src": "3492:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3504,11 +3504,11 @@ }, { "constant": false, - "id": 866, + "id": 995, "name": "data", "nodeType": "VariableDeclaration", - "scope": 875, - "src": "3507:10:6", + "scope": 1004, + "src": "3507:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3516,10 +3516,10 @@ "typeString": "bytes" }, "typeName": { - "id": 865, + "id": 994, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3507:5:6", + "src": "3507:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3530,11 +3530,11 @@ }, { "constant": false, - "id": 868, + "id": 997, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 875, - "src": "3519:13:6", + "scope": 1004, + "src": "3519:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3542,10 +3542,10 @@ "typeString": "uint256" }, "typeName": { - "id": 867, + "id": 996, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3519:7:6", + "src": "3519:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3555,20 +3555,20 @@ "visibility": "internal" } ], - "src": "3479:54:6" + "src": "3479:54:8" }, "payable": false, "returnParameters": { - "id": 872, + "id": 1001, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 871, + "id": 1000, "name": "success", "nodeType": "VariableDeclaration", - "scope": 875, - "src": "3568:12:6", + "scope": 1004, + "src": "3568:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3576,10 +3576,10 @@ "typeString": "bool" }, "typeName": { - "id": 870, + "id": 999, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3568:4:6", + "src": "3568:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3589,77 +3589,77 @@ "visibility": "internal" } ], - "src": "3567:14:6" + "src": "3567:14:8" }, - "scope": 971, - "src": "3459:309:6", + "scope": 1100, + "src": "3459:309:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 887, + "id": 1016, "nodeType": "Block", - "src": "3894:183:6", + "src": "3894:183:8", "statements": [ { "externalReferences": [ { "data": { - "declaration": 879, + "declaration": 1008, "isOffset": false, "isSlot": false, - "src": "4049:4:6", + "src": "4049:4:8", "valueSize": 1 } }, { "data": { - "declaration": 879, + "declaration": 1008, "isOffset": false, "isSlot": false, - "src": "4030:4:6", + "src": "4030:4:8", "valueSize": 1 } }, { "success": { - "declaration": 884, + "declaration": 1013, "isOffset": false, "isSlot": false, - "src": "3991:7:6", + "src": "3991:7:8", "valueSize": 1 } }, { "txGas": { - "declaration": 881, + "declaration": 1010, "isOffset": false, "isSlot": false, - "src": "4015:5:6", + "src": "4015:5:8", "valueSize": 1 } }, { "to": { - "declaration": 877, + "declaration": 1006, "isOffset": false, "isSlot": false, - "src": "4022:2:6", + "src": "4022:2:8", "valueSize": 1 } } ], - "id": 886, + "id": 1015, "nodeType": "InlineAssembly", "operations": "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "3968:109:6" + "src": "3968:109:8" } ] }, "documentation": null, - "id": 888, + "id": 1017, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3667,16 +3667,16 @@ "name": "executeDelegateCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 882, + "id": 1011, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 877, + "id": 1006, "name": "to", "nodeType": "VariableDeclaration", - "scope": 888, - "src": "3803:10:6", + "scope": 1017, + "src": "3803:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3684,10 +3684,10 @@ "typeString": "address" }, "typeName": { - "id": 876, + "id": 1005, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3803:7:6", + "src": "3803:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3698,11 +3698,11 @@ }, { "constant": false, - "id": 879, + "id": 1008, "name": "data", "nodeType": "VariableDeclaration", - "scope": 888, - "src": "3815:10:6", + "scope": 1017, + "src": "3815:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3710,10 +3710,10 @@ "typeString": "bytes" }, "typeName": { - "id": 878, + "id": 1007, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3815:5:6", + "src": "3815:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3724,11 +3724,11 @@ }, { "constant": false, - "id": 881, + "id": 1010, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 888, - "src": "3827:13:6", + "scope": 1017, + "src": "3827:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3736,10 +3736,10 @@ "typeString": "uint256" }, "typeName": { - "id": 880, + "id": 1009, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3827:7:6", + "src": "3827:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3749,20 +3749,20 @@ "visibility": "internal" } ], - "src": "3802:39:6" + "src": "3802:39:8" }, "payable": false, "returnParameters": { - "id": 885, + "id": 1014, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 884, + "id": 1013, "name": "success", "nodeType": "VariableDeclaration", - "scope": 888, - "src": "3876:12:6", + "scope": 1017, + "src": "3876:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3770,10 +3770,10 @@ "typeString": "bool" }, "typeName": { - "id": 883, + "id": 1012, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3876:4:6", + "src": "3876:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3783,59 +3783,59 @@ "visibility": "internal" } ], - "src": "3875:14:6" + "src": "3875:14:8" }, - "scope": 971, - "src": "3774:303:6", + "scope": 1100, + "src": "3774:303:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 896, + "id": 1025, "nodeType": "Block", - "src": "4177:167:6", + "src": "4177:167:8", "statements": [ { "externalReferences": [ { "newContract": { - "declaration": 893, + "declaration": 1022, "isOffset": false, "isSlot": false, - "src": "4274:11:6", + "src": "4274:11:8", "valueSize": 1 } }, { "data": { - "declaration": 890, + "declaration": 1019, "isOffset": false, "isSlot": false, - "src": "4303:4:6", + "src": "4303:4:8", "valueSize": 1 } }, { "data": { - "declaration": 890, + "declaration": 1019, "isOffset": false, "isSlot": false, - "src": "4322:4:6", + "src": "4322:4:8", "valueSize": 1 } } ], - "id": 895, + "id": 1024, "nodeType": "InlineAssembly", "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", - "src": "4251:93:6" + "src": "4251:93:8" } ] }, "documentation": null, - "id": 897, + "id": 1026, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3843,16 +3843,16 @@ "name": "executeCreate", "nodeType": "FunctionDefinition", "parameters": { - "id": 891, + "id": 1020, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 890, + "id": 1019, "name": "data", "nodeType": "VariableDeclaration", - "scope": 897, - "src": "4106:10:6", + "scope": 1026, + "src": "4106:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3860,10 +3860,10 @@ "typeString": "bytes" }, "typeName": { - "id": 889, + "id": 1018, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4106:5:6", + "src": "4106:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3873,20 +3873,20 @@ "visibility": "internal" } ], - "src": "4105:12:6" + "src": "4105:12:8" }, "payable": false, "returnParameters": { - "id": 894, + "id": 1023, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 893, + "id": 1022, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 897, - "src": "4152:19:6", + "scope": 1026, + "src": "4152:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3894,10 +3894,10 @@ "typeString": "address" }, "typeName": { - "id": 892, + "id": 1021, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4152:7:6", + "src": "4152:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3907,32 +3907,32 @@ "visibility": "internal" } ], - "src": "4151:21:6" + "src": "4151:21:8" }, - "scope": 971, - "src": "4083:261:6", + "scope": 1100, + "src": "4083:261:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 969, + "id": 1098, "nodeType": "Block", - "src": "4505:656:6", + "src": "4505:656:8", "statements": [ { "assignments": [ - 904 + 1033 ], "declarations": [ { "constant": false, - "id": 904, + "id": 1033, "name": "moduleCount", "nodeType": "VariableDeclaration", - "scope": 970, - "src": "4549:19:6", + "scope": 1099, + "src": "4549:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3940,10 +3940,10 @@ "typeString": "uint256" }, "typeName": { - "id": 903, + "id": 1032, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4549:7:6", + "src": "4549:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3953,18 +3953,18 @@ "visibility": "internal" } ], - "id": 906, + "id": 1035, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 905, + "id": 1034, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4571:1:6", + "src": "4571:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3973,20 +3973,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4549:23:6" + "src": "4549:23:8" }, { "assignments": [ - 908 + 1037 ], "declarations": [ { "constant": false, - "id": 908, + "id": 1037, "name": "currentModule", "nodeType": "VariableDeclaration", - "scope": 970, - "src": "4582:21:6", + "scope": 1099, + "src": "4582:21:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3994,10 +3994,10 @@ "typeString": "address" }, "typeName": { - "id": 907, + "id": 1036, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4582:7:6", + "src": "4582:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4007,31 +4007,31 @@ "visibility": "internal" } ], - "id": 912, + "id": 1041, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 909, + "id": 1038, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "4606:7:6", + "referencedDeclaration": 776, + "src": "4606:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 911, + "id": 1040, "indexExpression": { "argumentTypes": null, - "id": 910, + "id": 1039, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "4614:16:6", + "referencedDeclaration": 772, + "src": "4614:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4042,37 +4042,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4606:25:6", + "src": "4606:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4582:49:6" + "src": "4582:49:8" }, { "body": { - "id": 925, + "id": 1054, "nodeType": "Block", - "src": "4682:91:6", + "src": "4682:91:8", "statements": [ { "expression": { "argumentTypes": null, - "id": 920, + "id": 1049, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 916, + "id": 1045, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "4696:13:6", + "referencedDeclaration": 1037, + "src": "4696:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4084,26 +4084,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 917, + "id": 1046, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "4712:7:6", + "referencedDeclaration": 776, + "src": "4712:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 919, + "id": 1048, "indexExpression": { "argumentTypes": null, - "id": 918, + "id": 1047, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "4720:13:6", + "referencedDeclaration": 1037, + "src": "4720:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4114,26 +4114,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4712:22:6", + "src": "4712:22:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4696:38:6", + "src": "4696:38:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 921, + "id": 1050, "nodeType": "ExpressionStatement", - "src": "4696:38:6" + "src": "4696:38:8" }, { "expression": { "argumentTypes": null, - "id": 923, + "id": 1052, "isConstant": false, "isLValue": false, "isPure": false, @@ -4141,15 +4141,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4748:14:6", + "src": "4748:14:8", "subExpression": { "argumentTypes": null, - "id": 922, + "id": 1051, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 904, - "src": "4748:11:6", + "referencedDeclaration": 1033, + "src": "4748:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4160,9 +4160,9 @@ "typeString": "uint256" } }, - "id": 924, + "id": 1053, "nodeType": "ExpressionStatement", - "src": "4748:14:6" + "src": "4748:14:8" } ] }, @@ -4172,19 +4172,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 915, + "id": 1044, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 913, + "id": 1042, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "4647:13:6", + "referencedDeclaration": 1037, + "src": "4647:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4194,39 +4194,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 914, + "id": 1043, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "4664:16:6", + "referencedDeclaration": 772, + "src": "4664:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4647:33:6", + "src": "4647:33:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 926, + "id": 1055, "nodeType": "WhileStatement", - "src": "4641:132:6" + "src": "4641:132:8" }, { "assignments": [ - 930 + 1059 ], "declarations": [ { "constant": false, - "id": 930, + "id": 1059, "name": "array", "nodeType": "VariableDeclaration", - "scope": 970, - "src": "4782:22:6", + "scope": 1099, + "src": "4782:22:8", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4235,19 +4235,19 @@ }, "typeName": { "baseType": { - "id": 928, + "id": 1057, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4782:7:6", + "src": "4782:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 929, + "id": 1058, "length": null, "nodeType": "ArrayTypeName", - "src": "4782:9:6", + "src": "4782:9:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -4257,18 +4257,18 @@ "visibility": "internal" } ], - "id": 936, + "id": 1065, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 934, + "id": 1063, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 904, - "src": "4821:11:6", + "referencedDeclaration": 1033, + "src": "4821:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4282,39 +4282,39 @@ "typeString": "uint256" } ], - "id": 933, + "id": 1062, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "4807:13:6", + "src": "4807:13:8", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { - "id": 931, + "id": 1060, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4811:7:6", + "src": "4811:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 932, + "id": 1061, "length": null, "nodeType": "ArrayTypeName", - "src": "4811:9:6", + "src": "4811:9:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 935, + "id": 1064, "isConstant": false, "isLValue": false, "isPure": false, @@ -4322,31 +4322,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4807:26:6", + "src": "4807:26:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "4782:51:6" + "src": "4782:51:8" }, { "expression": { "argumentTypes": null, - "id": 939, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 937, + "id": 1066, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 904, - "src": "4877:11:6", + "referencedDeclaration": 1033, + "src": "4877:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4357,14 +4357,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 938, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4891:1:6", + "src": "4891:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4372,32 +4372,32 @@ }, "value": "0" }, - "src": "4877:15:6", + "src": "4877:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 940, + "id": 1069, "nodeType": "ExpressionStatement", - "src": "4877:15:6" + "src": "4877:15:8" }, { "expression": { "argumentTypes": null, - "id": 945, + "id": 1074, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 941, + "id": 1070, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "4902:13:6", + "referencedDeclaration": 1037, + "src": "4902:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4409,26 +4409,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 942, + "id": 1071, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "4918:7:6", + "referencedDeclaration": 776, + "src": "4918:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 944, + "id": 1073, "indexExpression": { "argumentTypes": null, - "id": 943, + "id": 1072, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "4926:16:6", + "referencedDeclaration": 772, + "src": "4926:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4439,32 +4439,32 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4918:25:6", + "src": "4918:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4902:41:6", + "src": "4902:41:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 946, + "id": 1075, "nodeType": "ExpressionStatement", - "src": "4902:41:6" + "src": "4902:41:8" }, { "body": { - "id": 965, + "id": 1094, "nodeType": "Block", - "src": "4994:139:6", + "src": "4994:139:8", "statements": [ { "expression": { "argumentTypes": null, - "id": 954, + "id": 1083, "isConstant": false, "isLValue": false, "isPure": false, @@ -4473,26 +4473,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 950, + "id": 1079, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 930, - "src": "5008:5:6", + "referencedDeclaration": 1059, + "src": "5008:5:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 952, + "id": 1081, "indexExpression": { "argumentTypes": null, - "id": 951, + "id": 1080, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 904, - "src": "5014:11:6", + "referencedDeclaration": 1033, + "src": "5014:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4503,7 +4503,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5008:18:6", + "src": "5008:18:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4513,43 +4513,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 953, + "id": 1082, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "5029:13:6", + "referencedDeclaration": 1037, + "src": "5029:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5008:34:6", + "src": "5008:34:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 955, + "id": 1084, "nodeType": "ExpressionStatement", - "src": "5008:34:6" + "src": "5008:34:8" }, { "expression": { "argumentTypes": null, - "id": 960, + "id": 1089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 956, + "id": 1085, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "5056:13:6", + "referencedDeclaration": 1037, + "src": "5056:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4561,26 +4561,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 957, + "id": 1086, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "5072:7:6", + "referencedDeclaration": 776, + "src": "5072:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 959, + "id": 1088, "indexExpression": { "argumentTypes": null, - "id": 958, + "id": 1087, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "5080:13:6", + "referencedDeclaration": 1037, + "src": "5080:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4591,26 +4591,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5072:22:6", + "src": "5072:22:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5056:38:6", + "src": "5056:38:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 961, + "id": 1090, "nodeType": "ExpressionStatement", - "src": "5056:38:6" + "src": "5056:38:8" }, { "expression": { "argumentTypes": null, - "id": 963, + "id": 1092, "isConstant": false, "isLValue": false, "isPure": false, @@ -4618,15 +4618,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5108:14:6", + "src": "5108:14:8", "subExpression": { "argumentTypes": null, - "id": 962, + "id": 1091, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 904, - "src": "5108:11:6", + "referencedDeclaration": 1033, + "src": "5108:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4637,9 +4637,9 @@ "typeString": "uint256" } }, - "id": 964, + "id": 1093, "nodeType": "ExpressionStatement", - "src": "5108:14:6" + "src": "5108:14:8" } ] }, @@ -4649,19 +4649,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 949, + "id": 1078, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 947, + "id": 1076, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "4959:13:6", + "referencedDeclaration": 1037, + "src": "4959:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4671,50 +4671,50 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 948, + "id": 1077, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "4976:16:6", + "referencedDeclaration": 772, + "src": "4976:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4959:33:6", + "src": "4959:33:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 966, + "id": 1095, "nodeType": "WhileStatement", - "src": "4953:180:6" + "src": "4953:180:8" }, { "expression": { "argumentTypes": null, - "id": 967, + "id": 1096, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 930, - "src": "5149:5:6", + "referencedDeclaration": 1059, + "src": "5149:5:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 902, - "id": 968, + "functionReturnParameters": 1031, + "id": 1097, "nodeType": "Return", - "src": "5142:12:6" + "src": "5142:12:8" } ] }, "documentation": "@dev Returns array of modules.\n @return Array of modules.", - "id": 970, + "id": 1099, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4722,23 +4722,23 @@ "name": "getModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 898, + "id": 1027, "nodeType": "ParameterList", "parameters": [], - "src": "4442:2:6" + "src": "4442:2:8" }, "payable": false, "returnParameters": { - "id": 902, + "id": 1031, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 901, + "id": 1030, "name": "", "nodeType": "VariableDeclaration", - "scope": 970, - "src": "4490:9:6", + "scope": 1099, + "src": "4490:9:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4747,19 +4747,19 @@ }, "typeName": { "baseType": { - "id": 899, + "id": 1028, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4490:7:6", + "src": "4490:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 900, + "id": 1029, "length": null, "nodeType": "ArrayTypeName", - "src": "4490:9:6", + "src": "4490:9:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -4769,71 +4769,71 @@ "visibility": "internal" } ], - "src": "4489:11:6" + "src": "4489:11:8" }, - "scope": 971, - "src": "4423:738:6", + "scope": 1100, + "src": "4423:738:8", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 972, - "src": "303:4860:6" + "scope": 1101, + "src": "303:4860:8" } ], - "src": "0:5164:6" + "src": "0:5164:8" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "exportedSymbols": { "ModuleManager": [ - 971 + 1100 ] }, - "id": 972, + "id": 1101, "nodeType": "SourceUnit", "nodes": [ { - "id": 623, + "id": 752, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:6" + "src": "0:23:8" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "./Module.sol", - "id": 624, + "id": 753, "nodeType": "ImportDirective", - "scope": 972, - "sourceUnit": 622, - "src": "24:22:6", + "scope": 1101, + "sourceUnit": 751, + "src": "24:22:8", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 625, + "id": 754, "nodeType": "ImportDirective", - "scope": 972, - "sourceUnit": 581, - "src": "47:26:6", + "scope": 1101, + "sourceUnit": 653, + "src": "47:26:8", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "./Enum.sol", - "id": 626, + "id": 755, "nodeType": "ImportDirective", - "scope": 972, - "sourceUnit": 7, - "src": "74:20:6", + "scope": 1101, + "sourceUnit": 31, + "src": "74:20:8", "symbolAliases": [], "unitAlias": "" }, @@ -4843,31 +4843,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 627, + "id": 756, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1359, - "src": "329:14:6", + "referencedDeclaration": 1619, + "src": "329:14:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1359", + "typeIdentifier": "t_contract$_SelfAuthorized_$1619", "typeString": "contract SelfAuthorized" } }, - "id": 628, + "id": 757, "nodeType": "InheritanceSpecifier", - "src": "329:14:6" + "src": "329:14:8" } ], "contractDependencies": [ - 1359 + 1619 ], "contractKind": "contract", "documentation": "@title Module Manager - A contract that manages modules that can execute transactions via this contract\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 971, + "id": 1100, "linearizedBaseContracts": [ - 971, - 1359 + 1100, + 1619 ], "name": "ModuleManager", "nodeType": "ContractDefinition", @@ -4875,21 +4875,21 @@ { "anonymous": false, "documentation": null, - "id": 632, + "id": 761, "name": "ContractCreation", "nodeType": "EventDefinition", "parameters": { - "id": 631, + "id": 760, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 630, + "id": 759, "indexed": false, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 632, - "src": "374:19:6", + "scope": 761, + "src": "374:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4897,10 +4897,10 @@ "typeString": "address" }, "typeName": { - "id": 629, + "id": 758, "name": "address", "nodeType": "ElementaryTypeName", - "src": "374:7:6", + "src": "374:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4910,17 +4910,17 @@ "visibility": "internal" } ], - "src": "373:21:6" + "src": "373:21:8" }, - "src": "351:44:6" + "src": "351:44:8" }, { "constant": true, - "id": 635, + "id": 764, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 971, - "src": "401:46:6", + "scope": 1100, + "src": "401:46:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4928,10 +4928,10 @@ "typeString": "string" }, "typeName": { - "id": 633, + "id": 762, "name": "string", "nodeType": "ElementaryTypeName", - "src": "401:6:6", + "src": "401:6:8", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4940,14 +4940,14 @@ "value": { "argumentTypes": null, "hexValue": "4d6f64756c65204d616e61676572", - "id": 634, + "id": 763, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "431:16:6", + "src": "431:16:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_12aaa44a1bae367a1e1d9881f5d80283afded6373c2a1ca586db420944084efb", @@ -4959,11 +4959,11 @@ }, { "constant": true, - "id": 638, + "id": 767, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 971, - "src": "453:40:6", + "scope": 1100, + "src": "453:40:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4971,10 +4971,10 @@ "typeString": "string" }, "typeName": { - "id": 636, + "id": 765, "name": "string", "nodeType": "ElementaryTypeName", - "src": "453:6:6", + "src": "453:6:8", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4983,14 +4983,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 637, + "id": 766, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "486:7:6", + "src": "486:7:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -5002,11 +5002,11 @@ }, { "constant": true, - "id": 643, + "id": 772, "name": "SENTINEL_MODULES", "nodeType": "VariableDeclaration", - "scope": 971, - "src": "499:55:6", + "scope": 1100, + "src": "499:55:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5014,10 +5014,10 @@ "typeString": "address" }, "typeName": { - "id": 639, + "id": 768, "name": "address", "nodeType": "ElementaryTypeName", - "src": "499:7:6", + "src": "499:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5029,14 +5029,14 @@ { "argumentTypes": null, "hexValue": "307831", - "id": 641, + "id": 770, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "550:3:6", + "src": "550:3:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5052,20 +5052,20 @@ "typeString": "int_const 1" } ], - "id": 640, + "id": 769, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "542:7:6", + "src": "542:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 642, + "id": 771, "isConstant": false, "isLValue": false, "isPure": true, @@ -5073,7 +5073,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "542:12:6", + "src": "542:12:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5083,11 +5083,11 @@ }, { "constant": false, - "id": 647, + "id": 776, "name": "modules", "nodeType": "VariableDeclaration", - "scope": 971, - "src": "561:45:6", + "scope": 1100, + "src": "561:45:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5095,28 +5095,28 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 646, + "id": 775, "keyType": { - "id": 644, + "id": 773, "name": "address", "nodeType": "ElementaryTypeName", - "src": "570:7:6", + "src": "570:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "561:28:6", + "src": "561:28:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" }, "valueType": { - "id": 645, + "id": 774, "name": "address", "nodeType": "ElementaryTypeName", - "src": "581:7:6", + "src": "581:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5128,13 +5128,13 @@ }, { "body": { - "id": 650, + "id": 779, "nodeType": "Block", - "src": "721:8:6", + "src": "721:8:8", "statements": [] }, "documentation": "@dev Fallback function accepts Ether transactions.", - "id": 651, + "id": 780, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5142,29 +5142,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 648, + "id": 777, "nodeType": "ParameterList", "parameters": [], - "src": "681:2:6" + "src": "681:2:8" }, "payable": true, "returnParameters": { - "id": 649, + "id": 778, "nodeType": "ParameterList", "parameters": [], - "src": "721:0:6" + "src": "721:0:8" }, - "scope": 971, - "src": "672:57:6", + "scope": 1100, + "src": "672:57:8", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 685, + "id": 814, "nodeType": "Block", - "src": "802:266:6", + "src": "802:266:8", "statements": [ { "expression": { @@ -5176,7 +5176,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 663, + "id": 792, "isConstant": false, "isLValue": false, "isPure": false, @@ -5185,26 +5185,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 659, + "id": 788, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "820:7:6", + "referencedDeclaration": 776, + "src": "820:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 661, + "id": 790, "indexExpression": { "argumentTypes": null, - "id": 660, + "id": 789, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "828:16:6", + "referencedDeclaration": 772, + "src": "828:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5215,7 +5215,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "820:25:6", + "src": "820:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5226,14 +5226,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 662, + "id": 791, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "849:1:6", + "src": "849:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5241,7 +5241,7 @@ }, "value": "0" }, - "src": "820:30:6", + "src": "820:30:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5255,21 +5255,21 @@ "typeString": "bool" } ], - "id": 658, + "id": 787, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "812:7:6", + "referencedDeclaration": 2601, + "src": "812:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 664, + "id": 793, "isConstant": false, "isLValue": false, "isPure": false, @@ -5277,20 +5277,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "812:39:6", + "src": "812:39:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 665, + "id": 794, "nodeType": "ExpressionStatement", - "src": "812:39:6" + "src": "812:39:8" }, { "expression": { "argumentTypes": null, - "id": 670, + "id": 799, "isConstant": false, "isLValue": false, "isPure": false, @@ -5299,26 +5299,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 666, + "id": 795, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "861:7:6", + "referencedDeclaration": 776, + "src": "861:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 668, + "id": 797, "indexExpression": { "argumentTypes": null, - "id": 667, + "id": 796, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "869:16:6", + "referencedDeclaration": 772, + "src": "869:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5329,7 +5329,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "861:25:6", + "src": "861:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5339,26 +5339,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 669, + "id": 798, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "889:16:6", + "referencedDeclaration": 772, + "src": "889:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "861:44:6", + "src": "861:44:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 671, + "id": 800, "nodeType": "ExpressionStatement", - "src": "861:44:6" + "src": "861:44:8" }, { "condition": { @@ -5367,19 +5367,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 674, + "id": 803, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 672, + "id": 801, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 653, - "src": "919:2:6", + "referencedDeclaration": 782, + "src": "919:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5390,14 +5390,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 673, + "id": 802, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "925:1:6", + "src": "925:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5405,16 +5405,16 @@ }, "value": "0" }, - "src": "919:7:6", + "src": "919:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 684, + "id": 813, "nodeType": "IfStatement", - "src": "915:146:6", + "src": "915:146:8", "trueBody": { "expression": { "argumentTypes": null, @@ -5424,12 +5424,12 @@ "arguments": [ { "argumentTypes": null, - "id": 677, + "id": 806, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 653, - "src": "1040:2:6", + "referencedDeclaration": 782, + "src": "1040:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5437,12 +5437,12 @@ }, { "argumentTypes": null, - "id": 678, + "id": 807, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 655, - "src": "1044:4:6", + "referencedDeclaration": 784, + "src": "1044:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5453,18 +5453,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 679, + "id": 808, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "1050:7:6", + "referencedDeclaration": 2591, + "src": "1050:7:8", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 680, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, @@ -5472,7 +5472,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1050:9:6", + "src": "1050:9:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5494,18 +5494,18 @@ "typeString": "uint256" } ], - "id": 676, + "id": 805, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "1020:19:6", + "referencedDeclaration": 1017, + "src": "1020:19:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,bytes memory,uint256) returns (bool)" } }, - "id": 681, + "id": 810, "isConstant": false, "isLValue": false, "isPure": false, @@ -5513,7 +5513,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1020:40:6", + "src": "1020:40:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5527,21 +5527,21 @@ "typeString": "bool" } ], - "id": 675, + "id": 804, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1012:7:6", + "referencedDeclaration": 2601, + "src": "1012:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 682, + "id": 811, "isConstant": false, "isLValue": false, "isPure": false, @@ -5549,21 +5549,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1012:49:6", + "src": "1012:49:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 683, + "id": 812, "nodeType": "ExpressionStatement", - "src": "1012:49:6" + "src": "1012:49:8" } } ] }, "documentation": null, - "id": 686, + "id": 815, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5571,16 +5571,16 @@ "name": "setupModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 656, + "id": 785, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 653, + "id": 782, "name": "to", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "757:10:6", + "scope": 815, + "src": "757:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5588,10 +5588,10 @@ "typeString": "address" }, "typeName": { - "id": 652, + "id": 781, "name": "address", "nodeType": "ElementaryTypeName", - "src": "757:7:6", + "src": "757:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5602,11 +5602,11 @@ }, { "constant": false, - "id": 655, + "id": 784, "name": "data", "nodeType": "VariableDeclaration", - "scope": 686, - "src": "769:10:6", + "scope": 815, + "src": "769:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5614,10 +5614,10 @@ "typeString": "bytes" }, "typeName": { - "id": 654, + "id": 783, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "769:5:6", + "src": "769:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5627,26 +5627,26 @@ "visibility": "internal" } ], - "src": "756:24:6" + "src": "756:24:8" }, "payable": false, "returnParameters": { - "id": 657, + "id": 786, "nodeType": "ParameterList", "parameters": [], - "src": "802:0:6" + "src": "802:0:8" }, - "scope": 971, - "src": "735:333:6", + "scope": 1100, + "src": "735:333:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 729, + "id": 858, "nodeType": "Block", - "src": "1310:316:6", + "src": "1310:316:8", "statements": [ { "expression": { @@ -5658,7 +5658,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 704, + "id": 833, "isConstant": false, "isLValue": false, "isPure": false, @@ -5669,7 +5669,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 698, + "id": 827, "isConstant": false, "isLValue": false, "isPure": false, @@ -5679,14 +5679,14 @@ "arguments": [ { "argumentTypes": null, - "id": 695, + "id": 824, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "1390:6:6", + "referencedDeclaration": 817, + "src": "1390:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } } @@ -5694,24 +5694,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } ], - "id": 694, + "id": 823, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1382:7:6", + "src": "1382:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 696, + "id": 825, "isConstant": false, "isLValue": false, "isPure": false, @@ -5719,7 +5719,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1382:15:6", + "src": "1382:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5730,14 +5730,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 697, + "id": 826, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1401:1:6", + "src": "1401:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5745,7 +5745,7 @@ }, "value": "0" }, - "src": "1382:20:6", + "src": "1382:20:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5759,7 +5759,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 703, + "id": 832, "isConstant": false, "isLValue": false, "isPure": false, @@ -5769,14 +5769,14 @@ "arguments": [ { "argumentTypes": null, - "id": 700, + "id": 829, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "1414:6:6", + "referencedDeclaration": 817, + "src": "1414:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } } @@ -5784,24 +5784,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } ], - "id": 699, + "id": 828, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1406:7:6", + "src": "1406:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 701, + "id": 830, "isConstant": false, "isLValue": false, "isPure": false, @@ -5809,7 +5809,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1406:15:6", + "src": "1406:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5819,24 +5819,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 702, + "id": 831, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "1425:16:6", + "referencedDeclaration": 772, + "src": "1425:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1406:35:6", + "src": "1406:35:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1382:59:6", + "src": "1382:59:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5850,21 +5850,21 @@ "typeString": "bool" } ], - "id": 693, + "id": 822, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1374:7:6", + "referencedDeclaration": 2601, + "src": "1374:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 705, + "id": 834, "isConstant": false, "isLValue": false, "isPure": false, @@ -5872,15 +5872,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1374:68:6", + "src": "1374:68:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 706, + "id": 835, "nodeType": "ExpressionStatement", - "src": "1374:68:6" + "src": "1374:68:8" }, { "expression": { @@ -5892,7 +5892,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 712, + "id": 841, "isConstant": false, "isLValue": false, "isPure": false, @@ -5901,28 +5901,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 708, + "id": 837, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "1501:7:6", + "referencedDeclaration": 776, + "src": "1501:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 710, + "id": 839, "indexExpression": { "argumentTypes": null, - "id": 709, + "id": 838, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "1509:6:6", + "referencedDeclaration": 817, + "src": "1509:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -5931,7 +5931,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1501:15:6", + "src": "1501:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5942,14 +5942,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 711, + "id": 840, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1520:1:6", + "src": "1520:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5957,7 +5957,7 @@ }, "value": "0" }, - "src": "1501:20:6", + "src": "1501:20:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5971,21 +5971,21 @@ "typeString": "bool" } ], - "id": 707, + "id": 836, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1493:7:6", + "referencedDeclaration": 2601, + "src": "1493:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 713, + "id": 842, "isConstant": false, "isLValue": false, "isPure": false, @@ -5993,20 +5993,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1493:29:6", + "src": "1493:29:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 714, + "id": 843, "nodeType": "ExpressionStatement", - "src": "1493:29:6" + "src": "1493:29:8" }, { "expression": { "argumentTypes": null, - "id": 721, + "id": 850, "isConstant": false, "isLValue": false, "isPure": false, @@ -6015,28 +6015,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 715, + "id": 844, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "1532:7:6", + "referencedDeclaration": 776, + "src": "1532:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 717, + "id": 846, "indexExpression": { "argumentTypes": null, - "id": 716, + "id": 845, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "1540:6:6", + "referencedDeclaration": 817, + "src": "1540:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -6045,7 +6045,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1532:15:6", + "src": "1532:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6057,26 +6057,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 718, + "id": 847, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "1550:7:6", + "referencedDeclaration": 776, + "src": "1550:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 720, + "id": 849, "indexExpression": { "argumentTypes": null, - "id": 719, + "id": 848, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "1558:16:6", + "referencedDeclaration": 772, + "src": "1558:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6087,26 +6087,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1550:25:6", + "src": "1550:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1532:43:6", + "src": "1532:43:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 722, + "id": 851, "nodeType": "ExpressionStatement", - "src": "1532:43:6" + "src": "1532:43:8" }, { "expression": { "argumentTypes": null, - "id": 727, + "id": 856, "isConstant": false, "isLValue": false, "isPure": false, @@ -6115,26 +6115,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 723, + "id": 852, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "1585:7:6", + "referencedDeclaration": 776, + "src": "1585:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 725, + "id": 854, "indexExpression": { "argumentTypes": null, - "id": 724, + "id": 853, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "1593:16:6", + "referencedDeclaration": 772, + "src": "1593:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6145,7 +6145,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1585:25:6", + "src": "1585:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6155,83 +6155,83 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 726, + "id": 855, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 688, - "src": "1613:6:6", + "referencedDeclaration": 817, + "src": "1613:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, - "src": "1585:34:6", + "src": "1585:34:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 728, + "id": 857, "nodeType": "ExpressionStatement", - "src": "1585:34:6" + "src": "1585:34:8" } ] }, "documentation": "@dev Allows to add a module to the whitelist.\n This can only be done via a Safe transaction.\n @param module Module to be whitelisted.", - "id": 730, + "id": 859, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 691, + "id": 820, "modifierName": { "argumentTypes": null, - "id": 690, + "id": 819, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "1295:10:6", + "referencedDeclaration": 1618, + "src": "1295:10:8", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1295:10:6" + "src": "1295:10:8" } ], "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 689, + "id": 818, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 688, + "id": 817, "name": "module", "nodeType": "VariableDeclaration", - "scope": 730, - "src": "1257:13:6", + "scope": 859, + "src": "1257:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 687, + "id": 816, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "1257:6:6", + "referencedDeclaration": 750, + "src": "1257:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -6239,26 +6239,26 @@ "visibility": "internal" } ], - "src": "1256:15:6" + "src": "1256:15:8" }, "payable": false, "returnParameters": { - "id": 692, + "id": 821, "nodeType": "ParameterList", "parameters": [], - "src": "1310:0:6" + "src": "1310:0:8" }, - "scope": 971, - "src": "1235:391:6", + "scope": 1100, + "src": "1235:391:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 763, + "id": 892, "nodeType": "Block", - "src": "1982:204:6", + "src": "1982:204:8", "statements": [ { "expression": { @@ -6270,7 +6270,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 746, + "id": 875, "isConstant": false, "isLValue": false, "isPure": false, @@ -6279,28 +6279,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 740, + "id": 869, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2064:7:6", + "referencedDeclaration": 776, + "src": "2064:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 742, + "id": 871, "indexExpression": { "argumentTypes": null, - "id": 741, + "id": 870, "name": "prevModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 732, - "src": "2072:10:6", + "referencedDeclaration": 861, + "src": "2072:10:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -6309,7 +6309,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2064:19:6", + "src": "2064:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6322,14 +6322,14 @@ "arguments": [ { "argumentTypes": null, - "id": 744, + "id": 873, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "2095:6:6", + "referencedDeclaration": 863, + "src": "2095:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } } @@ -6337,24 +6337,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } ], - "id": 743, + "id": 872, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2087:7:6", + "src": "2087:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 745, + "id": 874, "isConstant": false, "isLValue": false, "isPure": false, @@ -6362,13 +6362,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2087:15:6", + "src": "2087:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2064:38:6", + "src": "2064:38:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6382,21 +6382,21 @@ "typeString": "bool" } ], - "id": 739, + "id": 868, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2056:7:6", + "referencedDeclaration": 2601, + "src": "2056:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 747, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, @@ -6404,20 +6404,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2056:47:6", + "src": "2056:47:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 748, + "id": 877, "nodeType": "ExpressionStatement", - "src": "2056:47:6" + "src": "2056:47:8" }, { "expression": { "argumentTypes": null, - "id": 755, + "id": 884, "isConstant": false, "isLValue": false, "isPure": false, @@ -6426,28 +6426,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 749, + "id": 878, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2113:7:6", + "referencedDeclaration": 776, + "src": "2113:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 751, + "id": 880, "indexExpression": { "argumentTypes": null, - "id": 750, + "id": 879, "name": "prevModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 732, - "src": "2121:10:6", + "referencedDeclaration": 861, + "src": "2121:10:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -6456,7 +6456,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2113:19:6", + "src": "2113:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6468,28 +6468,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 752, + "id": 881, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2135:7:6", + "referencedDeclaration": 776, + "src": "2135:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 754, + "id": 883, "indexExpression": { "argumentTypes": null, - "id": 753, + "id": 882, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "2143:6:6", + "referencedDeclaration": 863, + "src": "2143:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -6498,26 +6498,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2135:15:6", + "src": "2135:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2113:37:6", + "src": "2113:37:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 756, + "id": 885, "nodeType": "ExpressionStatement", - "src": "2113:37:6" + "src": "2113:37:8" }, { "expression": { "argumentTypes": null, - "id": 761, + "id": 890, "isConstant": false, "isLValue": false, "isPure": false, @@ -6526,28 +6526,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 757, + "id": 886, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2160:7:6", + "referencedDeclaration": 776, + "src": "2160:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 759, + "id": 888, "indexExpression": { "argumentTypes": null, - "id": 758, + "id": 887, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 734, - "src": "2168:6:6", + "referencedDeclaration": 863, + "src": "2168:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -6556,7 +6556,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2160:15:6", + "src": "2160:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6567,14 +6567,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 760, + "id": 889, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2178:1:6", + "src": "2178:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6582,72 +6582,72 @@ }, "value": "0" }, - "src": "2160:19:6", + "src": "2160:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 762, + "id": 891, "nodeType": "ExpressionStatement", - "src": "2160:19:6" + "src": "2160:19:8" } ] }, "documentation": "@dev Allows to remove a module from the whitelist.\n This can only be done via a Safe transaction.\n @param prevModule Module that pointed to the module to be removed in the linked list\n @param module Module to be removed.", - "id": 764, + "id": 893, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 737, + "id": 866, "modifierName": { "argumentTypes": null, - "id": 736, + "id": 865, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "1967:10:6", + "referencedDeclaration": 1618, + "src": "1967:10:8", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1967:10:6" + "src": "1967:10:8" } ], "name": "disableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 735, + "id": 864, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 732, + "id": 861, "name": "prevModule", "nodeType": "VariableDeclaration", - "scope": 764, - "src": "1910:17:6", + "scope": 893, + "src": "1910:17:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 731, + "id": 860, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "1910:6:6", + "referencedDeclaration": 750, + "src": "1910:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -6656,26 +6656,26 @@ }, { "constant": false, - "id": 734, + "id": 863, "name": "module", "nodeType": "VariableDeclaration", - "scope": 764, - "src": "1929:13:6", + "scope": 893, + "src": "1929:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 733, + "id": 862, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "1929:6:6", + "referencedDeclaration": 750, + "src": "1929:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, @@ -6683,26 +6683,26 @@ "visibility": "internal" } ], - "src": "1909:34:6" + "src": "1909:34:8" }, "payable": false, "returnParameters": { - "id": 738, + "id": 867, "nodeType": "ParameterList", "parameters": [], - "src": "1982:0:6" + "src": "1982:0:8" }, - "scope": 971, - "src": "1887:299:6", + "scope": 1100, + "src": "1887:299:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 797, + "id": 926, "nodeType": "Block", - "src": "2672:227:6", + "src": "2672:227:8", "statements": [ { "expression": { @@ -6714,7 +6714,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 783, + "id": 912, "isConstant": false, "isLValue": false, "isPure": false, @@ -6723,34 +6723,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 778, + "id": 907, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "2739:7:6", + "referencedDeclaration": 776, + "src": "2739:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 781, + "id": 910, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 779, + "id": 908, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "2747:3:6", + "referencedDeclaration": 2598, + "src": "2747:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 780, + "id": 909, "isConstant": false, "isLValue": false, "isPure": false, @@ -6758,7 +6758,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2747:10:6", + "src": "2747:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6769,7 +6769,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2739:19:6", + "src": "2739:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6780,14 +6780,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 782, + "id": 911, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2762:1:6", + "src": "2762:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6795,7 +6795,7 @@ }, "value": "0" }, - "src": "2739:24:6", + "src": "2739:24:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6809,21 +6809,21 @@ "typeString": "bool" } ], - "id": 777, + "id": 906, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2731:7:6", + "referencedDeclaration": 2601, + "src": "2731:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 784, + "id": 913, "isConstant": false, "isLValue": false, "isPure": false, @@ -6831,32 +6831,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2731:33:6", + "src": "2731:33:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 785, + "id": 914, "nodeType": "ExpressionStatement", - "src": "2731:33:6" + "src": "2731:33:8" }, { "expression": { "argumentTypes": null, - "id": 795, + "id": 924, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 786, + "id": 915, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 775, - "src": "2836:7:6", + "referencedDeclaration": 904, + "src": "2836:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6869,12 +6869,12 @@ "arguments": [ { "argumentTypes": null, - "id": 788, + "id": 917, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 766, - "src": "2854:2:6", + "referencedDeclaration": 895, + "src": "2854:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6882,12 +6882,12 @@ }, { "argumentTypes": null, - "id": 789, + "id": 918, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "2858:5:6", + "referencedDeclaration": 897, + "src": "2858:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6895,12 +6895,12 @@ }, { "argumentTypes": null, - "id": 790, + "id": 919, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 770, - "src": "2865:4:6", + "referencedDeclaration": 899, + "src": "2865:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6908,14 +6908,14 @@ }, { "argumentTypes": null, - "id": 791, + "id": 920, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 772, - "src": "2871:9:6", + "referencedDeclaration": 901, + "src": "2871:9:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -6924,18 +6924,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 792, + "id": 921, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "2882:7:6", + "referencedDeclaration": 2591, + "src": "2882:7:8", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 793, + "id": 922, "isConstant": false, "isLValue": false, "isPure": false, @@ -6943,7 +6943,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2882:9:6", + "src": "2882:9:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6965,7 +6965,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -6973,18 +6973,18 @@ "typeString": "uint256" } ], - "id": 787, + "id": 916, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 860, - "src": "2846:7:6", + "referencedDeclaration": 989, + "src": "2846:7:8", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bool_$", + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) returns (bool)" } }, - "id": 794, + "id": 923, "isConstant": false, "isLValue": false, "isPure": false, @@ -6992,26 +6992,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2846:46:6", + "src": "2846:46:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2836:56:6", + "src": "2836:56:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 796, + "id": 925, "nodeType": "ExpressionStatement", - "src": "2836:56:6" + "src": "2836:56:8" } ] }, "documentation": "@dev Allows a Module to execute a Safe transaction without any further confirmations.\n @param to Destination address of module transaction.\n @param value Ether value of module transaction.\n @param data Data payload of module transaction.\n @param operation Operation type of module transaction.", - "id": 798, + "id": 927, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7019,16 +7019,16 @@ "name": "execTransactionFromModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 773, + "id": 902, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 766, + "id": 895, "name": "to", "nodeType": "VariableDeclaration", - "scope": 798, - "src": "2557:10:6", + "scope": 927, + "src": "2557:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7036,10 +7036,10 @@ "typeString": "address" }, "typeName": { - "id": 765, + "id": 894, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2557:7:6", + "src": "2557:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7050,11 +7050,11 @@ }, { "constant": false, - "id": 768, + "id": 897, "name": "value", "nodeType": "VariableDeclaration", - "scope": 798, - "src": "2569:13:6", + "scope": 927, + "src": "2569:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7062,10 +7062,10 @@ "typeString": "uint256" }, "typeName": { - "id": 767, + "id": 896, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2569:7:6", + "src": "2569:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7076,11 +7076,11 @@ }, { "constant": false, - "id": 770, + "id": 899, "name": "data", "nodeType": "VariableDeclaration", - "scope": 798, - "src": "2584:10:6", + "scope": 927, + "src": "2584:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7088,10 +7088,10 @@ "typeString": "bytes" }, "typeName": { - "id": 769, + "id": 898, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2584:5:6", + "src": "2584:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7102,26 +7102,26 @@ }, { "constant": false, - "id": 772, + "id": 901, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 798, - "src": "2596:24:6", + "scope": 927, + "src": "2596:24:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 771, + "id": 900, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "2596:14:6", + "referencedDeclaration": 29, + "src": "2596:14:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -7129,20 +7129,20 @@ "visibility": "internal" } ], - "src": "2556:65:6" + "src": "2556:65:8" }, "payable": false, "returnParameters": { - "id": 776, + "id": 905, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 775, + "id": 904, "name": "success", "nodeType": "VariableDeclaration", - "scope": 798, - "src": "2654:12:6", + "scope": 927, + "src": "2654:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7150,10 +7150,10 @@ "typeString": "bool" }, "typeName": { - "id": 774, + "id": 903, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2654:4:6", + "src": "2654:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7163,42 +7163,42 @@ "visibility": "internal" } ], - "src": "2653:14:6" + "src": "2653:14:8" }, - "scope": 971, - "src": "2522:377:6", + "scope": 1100, + "src": "2522:377:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 859, + "id": 988, "nodeType": "Block", - "src": "3054:399:6", + "src": "3054:399:8", "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, - "id": 817, + "id": 946, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 813, + "id": 942, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 806, - "src": "3068:9:6", + "referencedDeclaration": 935, + "src": "3068:9:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -7210,32 +7210,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 814, + "id": 943, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "3081:4:6", + "referencedDeclaration": 30, + "src": "3081:4:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$6_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", "typeString": "type(contract Enum)" } }, - "id": 815, + "id": 944, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "3081:14:6", + "referencedDeclaration": 29, + "src": "3081:14:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$5_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 816, + "id": 945, "isConstant": false, "isLValue": false, "isPure": true, @@ -7243,13 +7243,13 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3081:19:6", + "src": "3081:19:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, - "src": "3068:32:6", + "src": "3068:32:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7259,24 +7259,24 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, - "id": 831, + "id": 960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 827, + "id": 956, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 806, - "src": "3178:9:6", + "referencedDeclaration": 935, + "src": "3178:9:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -7288,32 +7288,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 828, + "id": 957, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "3191:4:6", + "referencedDeclaration": 30, + "src": "3191:4:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$6_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", "typeString": "type(contract Enum)" } }, - "id": 829, + "id": 958, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "3191:14:6", + "referencedDeclaration": 29, + "src": "3191:14:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$5_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 830, + "id": 959, "isConstant": false, "isLValue": false, "isPure": true, @@ -7321,35 +7321,35 @@ "memberName": "DelegateCall", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3191:27:6", + "src": "3191:27:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, - "src": "3178:40:6", + "src": "3178:40:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 856, + "id": 985, "nodeType": "Block", - "src": "3293:154:6", + "src": "3293:154:8", "statements": [ { "assignments": [ - 841 + 970 ], "declarations": [ { "constant": false, - "id": 841, + "id": 970, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "3307:19:6", + "scope": 989, + "src": "3307:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7357,10 +7357,10 @@ "typeString": "address" }, "typeName": { - "id": 840, + "id": 969, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3307:7:6", + "src": "3307:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7370,18 +7370,18 @@ "visibility": "internal" } ], - "id": 845, + "id": 974, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 843, + "id": 972, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 804, - "src": "3343:4:6", + "referencedDeclaration": 933, + "src": "3343:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -7395,18 +7395,18 @@ "typeString": "bytes memory" } ], - "id": 842, + "id": 971, "name": "executeCreate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 897, - "src": "3329:13:6", + "referencedDeclaration": 1026, + "src": "3329:13:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", "typeString": "function (bytes memory) returns (address)" } }, - "id": 844, + "id": 973, "isConstant": false, "isLValue": false, "isPure": false, @@ -7414,31 +7414,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3329:19:6", + "src": "3329:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "3307:41:6" + "src": "3307:41:8" }, { "expression": { "argumentTypes": null, - "id": 850, + "id": 979, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 846, + "id": 975, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 811, - "src": "3362:7:6", + "referencedDeclaration": 940, + "src": "3362:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7452,19 +7452,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 849, + "id": 978, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 847, + "id": 976, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 841, - "src": "3372:11:6", + "referencedDeclaration": 970, + "src": "3372:11:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7475,14 +7475,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 848, + "id": 977, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3387:1:6", + "src": "3387:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7490,21 +7490,21 @@ }, "value": "0" }, - "src": "3372:16:6", + "src": "3372:16:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3362:26:6", + "src": "3362:26:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 851, + "id": 980, "nodeType": "ExpressionStatement", - "src": "3362:26:6" + "src": "3362:26:8" }, { "eventCall": { @@ -7512,12 +7512,12 @@ "arguments": [ { "argumentTypes": null, - "id": 853, + "id": 982, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 841, - "src": "3424:11:6", + "referencedDeclaration": 970, + "src": "3424:11:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7531,18 +7531,18 @@ "typeString": "address" } ], - "id": 852, + "id": 981, "name": "ContractCreation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 632, - "src": "3407:16:6", + "referencedDeclaration": 761, + "src": "3407:16:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 854, + "id": 983, "isConstant": false, "isLValue": false, "isPure": false, @@ -7550,37 +7550,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3407:29:6", + "src": "3407:29:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 855, + "id": 984, "nodeType": "EmitStatement", - "src": "3402:34:6" + "src": "3402:34:8" } ] }, - "id": 857, + "id": 986, "nodeType": "IfStatement", - "src": "3174:273:6", + "src": "3174:273:8", "trueBody": { "expression": { "argumentTypes": null, - "id": 838, + "id": 967, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 832, + "id": 961, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 811, - "src": "3232:7:6", + "referencedDeclaration": 940, + "src": "3232:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7593,12 +7593,12 @@ "arguments": [ { "argumentTypes": null, - "id": 834, + "id": 963, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "3262:2:6", + "referencedDeclaration": 929, + "src": "3262:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7606,12 +7606,12 @@ }, { "argumentTypes": null, - "id": 835, + "id": 964, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 804, - "src": "3266:4:6", + "referencedDeclaration": 933, + "src": "3266:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -7619,12 +7619,12 @@ }, { "argumentTypes": null, - "id": 836, + "id": 965, "name": "txGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 808, - "src": "3272:5:6", + "referencedDeclaration": 937, + "src": "3272:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7646,18 +7646,18 @@ "typeString": "uint256" } ], - "id": 833, + "id": 962, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 888, - "src": "3242:19:6", + "referencedDeclaration": 1017, + "src": "3242:19:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,bytes memory,uint256) returns (bool)" } }, - "id": 837, + "id": 966, "isConstant": false, "isLValue": false, "isPure": false, @@ -7665,42 +7665,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3242:36:6", + "src": "3242:36:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3232:46:6", + "src": "3232:46:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 839, + "id": 968, "nodeType": "ExpressionStatement", - "src": "3232:46:6" + "src": "3232:46:8" } }, - "id": 858, + "id": 987, "nodeType": "IfStatement", - "src": "3064:383:6", + "src": "3064:383:8", "trueBody": { "expression": { "argumentTypes": null, - "id": 825, + "id": 954, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 818, + "id": 947, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 811, - "src": "3114:7:6", + "referencedDeclaration": 940, + "src": "3114:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7713,12 +7713,12 @@ "arguments": [ { "argumentTypes": null, - "id": 820, + "id": 949, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 800, - "src": "3136:2:6", + "referencedDeclaration": 929, + "src": "3136:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7726,12 +7726,12 @@ }, { "argumentTypes": null, - "id": 821, + "id": 950, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 802, - "src": "3140:5:6", + "referencedDeclaration": 931, + "src": "3140:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7739,12 +7739,12 @@ }, { "argumentTypes": null, - "id": 822, + "id": 951, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 804, - "src": "3147:4:6", + "referencedDeclaration": 933, + "src": "3147:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -7752,12 +7752,12 @@ }, { "argumentTypes": null, - "id": 823, + "id": 952, "name": "txGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 808, - "src": "3153:5:6", + "referencedDeclaration": 937, + "src": "3153:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7783,18 +7783,18 @@ "typeString": "uint256" } ], - "id": 819, + "id": 948, "name": "executeCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 875, - "src": "3124:11:6", + "referencedDeclaration": 1004, + "src": "3124:11:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,uint256) returns (bool)" } }, - "id": 824, + "id": 953, "isConstant": false, "isLValue": false, "isPure": false, @@ -7802,27 +7802,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3124:35:6", + "src": "3124:35:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3114:45:6", + "src": "3114:45:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 826, + "id": 955, "nodeType": "ExpressionStatement", - "src": "3114:45:6" + "src": "3114:45:8" } } ] }, "documentation": null, - "id": 860, + "id": 989, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7830,16 +7830,16 @@ "name": "execute", "nodeType": "FunctionDefinition", "parameters": { - "id": 809, + "id": 938, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 800, + "id": 929, "name": "to", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "2922:10:6", + "scope": 989, + "src": "2922:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7847,10 +7847,10 @@ "typeString": "address" }, "typeName": { - "id": 799, + "id": 928, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2922:7:6", + "src": "2922:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7861,11 +7861,11 @@ }, { "constant": false, - "id": 802, + "id": 931, "name": "value", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "2934:13:6", + "scope": 989, + "src": "2934:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7873,10 +7873,10 @@ "typeString": "uint256" }, "typeName": { - "id": 801, + "id": 930, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2934:7:6", + "src": "2934:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7887,11 +7887,11 @@ }, { "constant": false, - "id": 804, + "id": 933, "name": "data", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "2949:10:6", + "scope": 989, + "src": "2949:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7899,10 +7899,10 @@ "typeString": "bytes" }, "typeName": { - "id": 803, + "id": 932, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2949:5:6", + "src": "2949:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7913,26 +7913,26 @@ }, { "constant": false, - "id": 806, + "id": 935, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "2961:24:6", + "scope": 989, + "src": "2961:24:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 805, + "id": 934, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "2961:14:6", + "referencedDeclaration": 29, + "src": "2961:14:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -7941,11 +7941,11 @@ }, { "constant": false, - "id": 808, + "id": 937, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "2987:13:6", + "scope": 989, + "src": "2987:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7953,10 +7953,10 @@ "typeString": "uint256" }, "typeName": { - "id": 807, + "id": 936, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2987:7:6", + "src": "2987:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7966,20 +7966,20 @@ "visibility": "internal" } ], - "src": "2921:80:6" + "src": "2921:80:8" }, "payable": false, "returnParameters": { - "id": 812, + "id": 941, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 811, + "id": 940, "name": "success", "nodeType": "VariableDeclaration", - "scope": 860, - "src": "3036:12:6", + "scope": 989, + "src": "3036:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7987,10 +7987,10 @@ "typeString": "bool" }, "typeName": { - "id": 810, + "id": 939, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3036:4:6", + "src": "3036:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8000,86 +8000,86 @@ "visibility": "internal" } ], - "src": "3035:14:6" + "src": "3035:14:8" }, - "scope": 971, - "src": "2905:548:6", + "scope": 1100, + "src": "2905:548:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 874, + "id": 1003, "nodeType": "Block", - "src": "3586:182:6", + "src": "3586:182:8", "statements": [ { "externalReferences": [ { "data": { - "declaration": 866, + "declaration": 995, "isOffset": false, "isSlot": false, - "src": "3740:4:6", + "src": "3740:4:8", "valueSize": 1 } }, { "data": { - "declaration": 866, + "declaration": 995, "isOffset": false, "isSlot": false, - "src": "3721:4:6", + "src": "3721:4:8", "valueSize": 1 } }, { "success": { - "declaration": 871, + "declaration": 1000, "isOffset": false, "isSlot": false, - "src": "3683:7:6", + "src": "3683:7:8", "valueSize": 1 } }, { "txGas": { - "declaration": 868, + "declaration": 997, "isOffset": false, "isSlot": false, - "src": "3699:5:6", + "src": "3699:5:8", "valueSize": 1 } }, { "to": { - "declaration": 862, + "declaration": 991, "isOffset": false, "isSlot": false, - "src": "3706:2:6", + "src": "3706:2:8", "valueSize": 1 } }, { "value": { - "declaration": 864, + "declaration": 993, "isOffset": false, "isSlot": false, - "src": "3710:5:6", + "src": "3710:5:8", "valueSize": 1 } } ], - "id": 873, + "id": 1002, "nodeType": "InlineAssembly", "operations": "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "3660:108:6" + "src": "3660:108:8" } ] }, "documentation": null, - "id": 875, + "id": 1004, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -8087,16 +8087,16 @@ "name": "executeCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 869, + "id": 998, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 862, + "id": 991, "name": "to", "nodeType": "VariableDeclaration", - "scope": 875, - "src": "3480:10:6", + "scope": 1004, + "src": "3480:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8104,10 +8104,10 @@ "typeString": "address" }, "typeName": { - "id": 861, + "id": 990, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3480:7:6", + "src": "3480:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8118,11 +8118,11 @@ }, { "constant": false, - "id": 864, + "id": 993, "name": "value", "nodeType": "VariableDeclaration", - "scope": 875, - "src": "3492:13:6", + "scope": 1004, + "src": "3492:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8130,10 +8130,10 @@ "typeString": "uint256" }, "typeName": { - "id": 863, + "id": 992, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3492:7:6", + "src": "3492:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8144,11 +8144,11 @@ }, { "constant": false, - "id": 866, + "id": 995, "name": "data", "nodeType": "VariableDeclaration", - "scope": 875, - "src": "3507:10:6", + "scope": 1004, + "src": "3507:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8156,10 +8156,10 @@ "typeString": "bytes" }, "typeName": { - "id": 865, + "id": 994, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3507:5:6", + "src": "3507:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8170,11 +8170,11 @@ }, { "constant": false, - "id": 868, + "id": 997, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 875, - "src": "3519:13:6", + "scope": 1004, + "src": "3519:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8182,10 +8182,10 @@ "typeString": "uint256" }, "typeName": { - "id": 867, + "id": 996, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3519:7:6", + "src": "3519:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8195,20 +8195,20 @@ "visibility": "internal" } ], - "src": "3479:54:6" + "src": "3479:54:8" }, "payable": false, "returnParameters": { - "id": 872, + "id": 1001, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 871, + "id": 1000, "name": "success", "nodeType": "VariableDeclaration", - "scope": 875, - "src": "3568:12:6", + "scope": 1004, + "src": "3568:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8216,10 +8216,10 @@ "typeString": "bool" }, "typeName": { - "id": 870, + "id": 999, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3568:4:6", + "src": "3568:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8229,77 +8229,77 @@ "visibility": "internal" } ], - "src": "3567:14:6" + "src": "3567:14:8" }, - "scope": 971, - "src": "3459:309:6", + "scope": 1100, + "src": "3459:309:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 887, + "id": 1016, "nodeType": "Block", - "src": "3894:183:6", + "src": "3894:183:8", "statements": [ { "externalReferences": [ { "data": { - "declaration": 879, + "declaration": 1008, "isOffset": false, "isSlot": false, - "src": "4049:4:6", + "src": "4049:4:8", "valueSize": 1 } }, { "data": { - "declaration": 879, + "declaration": 1008, "isOffset": false, "isSlot": false, - "src": "4030:4:6", + "src": "4030:4:8", "valueSize": 1 } }, { "success": { - "declaration": 884, + "declaration": 1013, "isOffset": false, "isSlot": false, - "src": "3991:7:6", + "src": "3991:7:8", "valueSize": 1 } }, { "txGas": { - "declaration": 881, + "declaration": 1010, "isOffset": false, "isSlot": false, - "src": "4015:5:6", + "src": "4015:5:8", "valueSize": 1 } }, { "to": { - "declaration": 877, + "declaration": 1006, "isOffset": false, "isSlot": false, - "src": "4022:2:6", + "src": "4022:2:8", "valueSize": 1 } } ], - "id": 886, + "id": 1015, "nodeType": "InlineAssembly", "operations": "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "3968:109:6" + "src": "3968:109:8" } ] }, "documentation": null, - "id": 888, + "id": 1017, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -8307,16 +8307,16 @@ "name": "executeDelegateCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 882, + "id": 1011, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 877, + "id": 1006, "name": "to", "nodeType": "VariableDeclaration", - "scope": 888, - "src": "3803:10:6", + "scope": 1017, + "src": "3803:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8324,10 +8324,10 @@ "typeString": "address" }, "typeName": { - "id": 876, + "id": 1005, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3803:7:6", + "src": "3803:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8338,11 +8338,11 @@ }, { "constant": false, - "id": 879, + "id": 1008, "name": "data", "nodeType": "VariableDeclaration", - "scope": 888, - "src": "3815:10:6", + "scope": 1017, + "src": "3815:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8350,10 +8350,10 @@ "typeString": "bytes" }, "typeName": { - "id": 878, + "id": 1007, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3815:5:6", + "src": "3815:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8364,11 +8364,11 @@ }, { "constant": false, - "id": 881, + "id": 1010, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 888, - "src": "3827:13:6", + "scope": 1017, + "src": "3827:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8376,10 +8376,10 @@ "typeString": "uint256" }, "typeName": { - "id": 880, + "id": 1009, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3827:7:6", + "src": "3827:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8389,20 +8389,20 @@ "visibility": "internal" } ], - "src": "3802:39:6" + "src": "3802:39:8" }, "payable": false, "returnParameters": { - "id": 885, + "id": 1014, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 884, + "id": 1013, "name": "success", "nodeType": "VariableDeclaration", - "scope": 888, - "src": "3876:12:6", + "scope": 1017, + "src": "3876:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8410,10 +8410,10 @@ "typeString": "bool" }, "typeName": { - "id": 883, + "id": 1012, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3876:4:6", + "src": "3876:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8423,59 +8423,59 @@ "visibility": "internal" } ], - "src": "3875:14:6" + "src": "3875:14:8" }, - "scope": 971, - "src": "3774:303:6", + "scope": 1100, + "src": "3774:303:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 896, + "id": 1025, "nodeType": "Block", - "src": "4177:167:6", + "src": "4177:167:8", "statements": [ { "externalReferences": [ { "newContract": { - "declaration": 893, + "declaration": 1022, "isOffset": false, "isSlot": false, - "src": "4274:11:6", + "src": "4274:11:8", "valueSize": 1 } }, { "data": { - "declaration": 890, + "declaration": 1019, "isOffset": false, "isSlot": false, - "src": "4303:4:6", + "src": "4303:4:8", "valueSize": 1 } }, { "data": { - "declaration": 890, + "declaration": 1019, "isOffset": false, "isSlot": false, - "src": "4322:4:6", + "src": "4322:4:8", "valueSize": 1 } } ], - "id": 895, + "id": 1024, "nodeType": "InlineAssembly", "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", - "src": "4251:93:6" + "src": "4251:93:8" } ] }, "documentation": null, - "id": 897, + "id": 1026, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -8483,16 +8483,16 @@ "name": "executeCreate", "nodeType": "FunctionDefinition", "parameters": { - "id": 891, + "id": 1020, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 890, + "id": 1019, "name": "data", "nodeType": "VariableDeclaration", - "scope": 897, - "src": "4106:10:6", + "scope": 1026, + "src": "4106:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8500,10 +8500,10 @@ "typeString": "bytes" }, "typeName": { - "id": 889, + "id": 1018, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4106:5:6", + "src": "4106:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8513,20 +8513,20 @@ "visibility": "internal" } ], - "src": "4105:12:6" + "src": "4105:12:8" }, "payable": false, "returnParameters": { - "id": 894, + "id": 1023, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 893, + "id": 1022, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 897, - "src": "4152:19:6", + "scope": 1026, + "src": "4152:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8534,10 +8534,10 @@ "typeString": "address" }, "typeName": { - "id": 892, + "id": 1021, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4152:7:6", + "src": "4152:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8547,32 +8547,32 @@ "visibility": "internal" } ], - "src": "4151:21:6" + "src": "4151:21:8" }, - "scope": 971, - "src": "4083:261:6", + "scope": 1100, + "src": "4083:261:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 969, + "id": 1098, "nodeType": "Block", - "src": "4505:656:6", + "src": "4505:656:8", "statements": [ { "assignments": [ - 904 + 1033 ], "declarations": [ { "constant": false, - "id": 904, + "id": 1033, "name": "moduleCount", "nodeType": "VariableDeclaration", - "scope": 970, - "src": "4549:19:6", + "scope": 1099, + "src": "4549:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8580,10 +8580,10 @@ "typeString": "uint256" }, "typeName": { - "id": 903, + "id": 1032, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4549:7:6", + "src": "4549:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8593,18 +8593,18 @@ "visibility": "internal" } ], - "id": 906, + "id": 1035, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 905, + "id": 1034, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4571:1:6", + "src": "4571:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8613,20 +8613,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4549:23:6" + "src": "4549:23:8" }, { "assignments": [ - 908 + 1037 ], "declarations": [ { "constant": false, - "id": 908, + "id": 1037, "name": "currentModule", "nodeType": "VariableDeclaration", - "scope": 970, - "src": "4582:21:6", + "scope": 1099, + "src": "4582:21:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8634,10 +8634,10 @@ "typeString": "address" }, "typeName": { - "id": 907, + "id": 1036, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4582:7:6", + "src": "4582:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8647,31 +8647,31 @@ "visibility": "internal" } ], - "id": 912, + "id": 1041, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 909, + "id": 1038, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "4606:7:6", + "referencedDeclaration": 776, + "src": "4606:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 911, + "id": 1040, "indexExpression": { "argumentTypes": null, - "id": 910, + "id": 1039, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "4614:16:6", + "referencedDeclaration": 772, + "src": "4614:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8682,37 +8682,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4606:25:6", + "src": "4606:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4582:49:6" + "src": "4582:49:8" }, { "body": { - "id": 925, + "id": 1054, "nodeType": "Block", - "src": "4682:91:6", + "src": "4682:91:8", "statements": [ { "expression": { "argumentTypes": null, - "id": 920, + "id": 1049, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 916, + "id": 1045, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "4696:13:6", + "referencedDeclaration": 1037, + "src": "4696:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8724,26 +8724,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 917, + "id": 1046, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "4712:7:6", + "referencedDeclaration": 776, + "src": "4712:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 919, + "id": 1048, "indexExpression": { "argumentTypes": null, - "id": 918, + "id": 1047, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "4720:13:6", + "referencedDeclaration": 1037, + "src": "4720:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8754,26 +8754,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4712:22:6", + "src": "4712:22:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4696:38:6", + "src": "4696:38:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 921, + "id": 1050, "nodeType": "ExpressionStatement", - "src": "4696:38:6" + "src": "4696:38:8" }, { "expression": { "argumentTypes": null, - "id": 923, + "id": 1052, "isConstant": false, "isLValue": false, "isPure": false, @@ -8781,15 +8781,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4748:14:6", + "src": "4748:14:8", "subExpression": { "argumentTypes": null, - "id": 922, + "id": 1051, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 904, - "src": "4748:11:6", + "referencedDeclaration": 1033, + "src": "4748:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8800,9 +8800,9 @@ "typeString": "uint256" } }, - "id": 924, + "id": 1053, "nodeType": "ExpressionStatement", - "src": "4748:14:6" + "src": "4748:14:8" } ] }, @@ -8812,19 +8812,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 915, + "id": 1044, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 913, + "id": 1042, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "4647:13:6", + "referencedDeclaration": 1037, + "src": "4647:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8834,39 +8834,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 914, + "id": 1043, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "4664:16:6", + "referencedDeclaration": 772, + "src": "4664:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4647:33:6", + "src": "4647:33:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 926, + "id": 1055, "nodeType": "WhileStatement", - "src": "4641:132:6" + "src": "4641:132:8" }, { "assignments": [ - 930 + 1059 ], "declarations": [ { "constant": false, - "id": 930, + "id": 1059, "name": "array", "nodeType": "VariableDeclaration", - "scope": 970, - "src": "4782:22:6", + "scope": 1099, + "src": "4782:22:8", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -8875,19 +8875,19 @@ }, "typeName": { "baseType": { - "id": 928, + "id": 1057, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4782:7:6", + "src": "4782:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 929, + "id": 1058, "length": null, "nodeType": "ArrayTypeName", - "src": "4782:9:6", + "src": "4782:9:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -8897,18 +8897,18 @@ "visibility": "internal" } ], - "id": 936, + "id": 1065, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 934, + "id": 1063, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 904, - "src": "4821:11:6", + "referencedDeclaration": 1033, + "src": "4821:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8922,39 +8922,39 @@ "typeString": "uint256" } ], - "id": 933, + "id": 1062, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "4807:13:6", + "src": "4807:13:8", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { - "id": 931, + "id": 1060, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4811:7:6", + "src": "4811:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 932, + "id": 1061, "length": null, "nodeType": "ArrayTypeName", - "src": "4811:9:6", + "src": "4811:9:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 935, + "id": 1064, "isConstant": false, "isLValue": false, "isPure": false, @@ -8962,31 +8962,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4807:26:6", + "src": "4807:26:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "4782:51:6" + "src": "4782:51:8" }, { "expression": { "argumentTypes": null, - "id": 939, + "id": 1068, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 937, + "id": 1066, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 904, - "src": "4877:11:6", + "referencedDeclaration": 1033, + "src": "4877:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8997,14 +8997,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 938, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4891:1:6", + "src": "4891:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9012,32 +9012,32 @@ }, "value": "0" }, - "src": "4877:15:6", + "src": "4877:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 940, + "id": 1069, "nodeType": "ExpressionStatement", - "src": "4877:15:6" + "src": "4877:15:8" }, { "expression": { "argumentTypes": null, - "id": 945, + "id": 1074, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 941, + "id": 1070, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "4902:13:6", + "referencedDeclaration": 1037, + "src": "4902:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9049,26 +9049,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 942, + "id": 1071, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "4918:7:6", + "referencedDeclaration": 776, + "src": "4918:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 944, + "id": 1073, "indexExpression": { "argumentTypes": null, - "id": 943, + "id": 1072, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "4926:16:6", + "referencedDeclaration": 772, + "src": "4926:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9079,32 +9079,32 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4918:25:6", + "src": "4918:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4902:41:6", + "src": "4902:41:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 946, + "id": 1075, "nodeType": "ExpressionStatement", - "src": "4902:41:6" + "src": "4902:41:8" }, { "body": { - "id": 965, + "id": 1094, "nodeType": "Block", - "src": "4994:139:6", + "src": "4994:139:8", "statements": [ { "expression": { "argumentTypes": null, - "id": 954, + "id": 1083, "isConstant": false, "isLValue": false, "isPure": false, @@ -9113,26 +9113,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 950, + "id": 1079, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 930, - "src": "5008:5:6", + "referencedDeclaration": 1059, + "src": "5008:5:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 952, + "id": 1081, "indexExpression": { "argumentTypes": null, - "id": 951, + "id": 1080, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 904, - "src": "5014:11:6", + "referencedDeclaration": 1033, + "src": "5014:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9143,7 +9143,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5008:18:6", + "src": "5008:18:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9153,43 +9153,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 953, + "id": 1082, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "5029:13:6", + "referencedDeclaration": 1037, + "src": "5029:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5008:34:6", + "src": "5008:34:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 955, + "id": 1084, "nodeType": "ExpressionStatement", - "src": "5008:34:6" + "src": "5008:34:8" }, { "expression": { "argumentTypes": null, - "id": 960, + "id": 1089, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 956, + "id": 1085, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "5056:13:6", + "referencedDeclaration": 1037, + "src": "5056:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9201,26 +9201,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 957, + "id": 1086, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 647, - "src": "5072:7:6", + "referencedDeclaration": 776, + "src": "5072:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 959, + "id": 1088, "indexExpression": { "argumentTypes": null, - "id": 958, + "id": 1087, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "5080:13:6", + "referencedDeclaration": 1037, + "src": "5080:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9231,26 +9231,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5072:22:6", + "src": "5072:22:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5056:38:6", + "src": "5056:38:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 961, + "id": 1090, "nodeType": "ExpressionStatement", - "src": "5056:38:6" + "src": "5056:38:8" }, { "expression": { "argumentTypes": null, - "id": 963, + "id": 1092, "isConstant": false, "isLValue": false, "isPure": false, @@ -9258,15 +9258,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5108:14:6", + "src": "5108:14:8", "subExpression": { "argumentTypes": null, - "id": 962, + "id": 1091, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 904, - "src": "5108:11:6", + "referencedDeclaration": 1033, + "src": "5108:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9277,9 +9277,9 @@ "typeString": "uint256" } }, - "id": 964, + "id": 1093, "nodeType": "ExpressionStatement", - "src": "5108:14:6" + "src": "5108:14:8" } ] }, @@ -9289,19 +9289,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 949, + "id": 1078, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 947, + "id": 1076, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "4959:13:6", + "referencedDeclaration": 1037, + "src": "4959:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9311,50 +9311,50 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 948, + "id": 1077, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 643, - "src": "4976:16:6", + "referencedDeclaration": 772, + "src": "4976:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4959:33:6", + "src": "4959:33:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 966, + "id": 1095, "nodeType": "WhileStatement", - "src": "4953:180:6" + "src": "4953:180:8" }, { "expression": { "argumentTypes": null, - "id": 967, + "id": 1096, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 930, - "src": "5149:5:6", + "referencedDeclaration": 1059, + "src": "5149:5:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 902, - "id": 968, + "functionReturnParameters": 1031, + "id": 1097, "nodeType": "Return", - "src": "5142:12:6" + "src": "5142:12:8" } ] }, "documentation": "@dev Returns array of modules.\n @return Array of modules.", - "id": 970, + "id": 1099, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -9362,23 +9362,23 @@ "name": "getModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 898, + "id": 1027, "nodeType": "ParameterList", "parameters": [], - "src": "4442:2:6" + "src": "4442:2:8" }, "payable": false, "returnParameters": { - "id": 902, + "id": 1031, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 901, + "id": 1030, "name": "", "nodeType": "VariableDeclaration", - "scope": 970, - "src": "4490:9:6", + "scope": 1099, + "src": "4490:9:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9387,19 +9387,19 @@ }, "typeName": { "baseType": { - "id": 899, + "id": 1028, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4490:7:6", + "src": "4490:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 900, + "id": 1029, "length": null, "nodeType": "ArrayTypeName", - "src": "4490:9:6", + "src": "4490:9:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -9409,26 +9409,26 @@ "visibility": "internal" } ], - "src": "4489:11:6" + "src": "4489:11:8" }, - "scope": 971, - "src": "4423:738:6", + "scope": 1100, + "src": "4423:738:8", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 972, - "src": "303:4860:6" + "scope": 1101, + "src": "303:4860:8" } ], - "src": "0:5164:6" + "src": "0:5164:8" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-16T10:51:14.748Z" + "updatedAt": "2018-05-27T11:12:45.579Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/MultiSend.json b/safe-contracts/build/contracts/MultiSend.json index 9d356f77..7e13b411 100644 --- a/safe-contracts/build/contracts/MultiSend.json +++ b/safe-contracts/build/contracts/MultiSend.json @@ -16,28 +16,28 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061013a806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680638d80ff0a14610046575b600080fd5b34801561005257600080fd5b506100ad600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506100af565b005b805160205b8181101561010957808301516020820184015160608301850151608084018601600080838386885af1600081146100ea576100ef565b600080fd5b5060208060208401040260800185019450505050506100b4565b5050505600a165627a7a7230582085c54bc0284c5004bee6b973aad924e63fe6628856cdf34c1eedabe70b1787fb0029", - "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680638d80ff0a14610046575b600080fd5b34801561005257600080fd5b506100ad600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506100af565b005b805160205b8181101561010957808301516020820184015160608301850151608084018601600080838386885af1600081146100ea576100ef565b600080fd5b5060208060208401040260800185019450505050506100b4565b5050505600a165627a7a7230582085c54bc0284c5004bee6b973aad924e63fe6628856cdf34c1eedabe70b1787fb0029", + "bytecode": "0x608060405234801561001057600080fd5b5061013a806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680638d80ff0a14610046575b600080fd5b34801561005257600080fd5b506100ad600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506100af565b005b805160205b8181101561010957808301516020820184015160608301850151608084018601600080838386885af1600081146100ea576100ef565b600080fd5b50602080601f8401040260800185019450505050506100b4565b5050505600a165627a7a72305820d762b9a26edc788e8139b309555c37a91970e3acfe5f209dff1eaf14345bdbe60029", + "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680638d80ff0a14610046575b600080fd5b34801561005257600080fd5b506100ad600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506100af565b005b805160205b8181101561010957808301516020820184015160608301850151608084018601600080838386885af1600081146100ea576100ef565b600080fd5b50602080601f8401040260800185019450505050506100b4565b5050505600a165627a7a72305820d762b9a26edc788e8139b309555c37a91970e3acfe5f209dff1eaf14345bdbe60029", "sourceMap": "253:1073:16:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;253:1073:16;;;;;;;", "deployedSourceMap": "253:1073:16:-;;;;;;;;;;;;;;;;;;;;;;;;593:731;;8:9:-1;5:2;;;30:1;27;20:12;5:2;593:731:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;768:12;762:19;803:4;820:488;834:6;831:1;828:13;820:488;;;898:1;884:12;880:20;874:27;962:4;959:1;955:12;941;937:31;931:38;1035:4;1032:1;1028:12;1014;1010:31;1004:38;1096:4;1093:1;1089:12;1075;1071:31;1168:1;1165;1153:10;1147:4;1140:5;1136:2;1131:3;1126:44;1192:1;1187:23;;;;1119:91;;1187:23;1206:1;1203;1196:12;1119:91;;1287:4;1280;1273;1261:10;1257:21;1253:32;1249:43;1243:4;1239:54;1236:1;1232:62;1227:67;;846:462;;;;820:488;;;734:584;;;:::o", - "source": "pragma solidity 0.4.23;\n\n\n/// @title Multi Send - Allows to batch multiple transactions into one.\n/// @author Nick Dodson - \n/// @author Gonçalo Sá - \n/// @author Stefan George - \ncontract MultiSend {\n\n /// @dev Sends multiple transactions and reverts all if one fails.\n /// @param transactions Encoded transactions. Each transaction is encoded as\n /// a tuple(address,uint256,bytes). The bytes of all\n /// encoded transactions are concatenated to form the input.\n function multiSend(bytes transactions)\n public\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let length := mload(transactions)\n let i := 0x20\n for { } lt(i, length) { } {\n let to := mload(add(transactions, i))\n let value := mload(add(transactions, add(i, 0x20)))\n let dataLength := mload(add(transactions, add(i, 0x60)))\n let data := add(transactions, add(i, 0x80))\n switch call(gas, to, value, data, dataLength, 0, 0)\n case 0 { revert(0, 0) }\n i := add(i, add(0x80, mul(div(add(dataLength, 0x20), 0x20), 0x20)))\n }\n }\n }\n}\n", + "source": "pragma solidity 0.4.24;\n\n\n/// @title Multi Send - Allows to batch multiple transactions into one.\n/// @author Nick Dodson - \n/// @author Gonçalo Sá - \n/// @author Stefan George - \ncontract MultiSend {\n\n /// @dev Sends multiple transactions and reverts all if one fails.\n /// @param transactions Encoded transactions. Each transaction is encoded as\n /// a tuple(address,uint256,bytes). The bytes of all\n /// encoded transactions are concatenated to form the input.\n function multiSend(bytes transactions)\n public\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let length := mload(transactions)\n let i := 0x20\n for { } lt(i, length) { } {\n let to := mload(add(transactions, i))\n let value := mload(add(transactions, add(i, 0x20)))\n let dataLength := mload(add(transactions, add(i, 0x60)))\n let data := add(transactions, add(i, 0x80))\n switch call(gas, to, value, data, dataLength, 0, 0)\n case 0 { revert(0, 0) }\n i := add(i, add(0x80, mul(div(add(dataLength, 0x1f), 0x20), 0x20)))\n }\n }\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", "exportedSymbols": { "MultiSend": [ - 1614 + 1740 ] }, - "id": 1615, + "id": 1741, "nodeType": "SourceUnit", "nodes": [ { - "id": 1606, + "id": 1732, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", "src": "0:23:16" @@ -48,16 +48,16 @@ "contractKind": "contract", "documentation": "@title Multi Send - Allows to batch multiple transactions into one.\n @author Nick Dodson - \n @author Gonçalo Sá - \n @author Stefan George - ", "fullyImplemented": true, - "id": 1614, + "id": 1740, "linearizedBaseContracts": [ - 1614 + 1740 ], "name": "MultiSend", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1612, + "id": 1738, "nodeType": "Block", "src": "651:673:16", "statements": [ @@ -65,7 +65,7 @@ "externalReferences": [ { "transactions": { - "declaration": 1608, + "declaration": 1734, "isOffset": false, "isSlot": false, "src": "768:12:16", @@ -74,7 +74,7 @@ }, { "transactions": { - "declaration": 1608, + "declaration": 1734, "isOffset": false, "isSlot": false, "src": "884:12:16", @@ -83,7 +83,7 @@ }, { "transactions": { - "declaration": 1608, + "declaration": 1734, "isOffset": false, "isSlot": false, "src": "941:12:16", @@ -92,7 +92,7 @@ }, { "transactions": { - "declaration": 1608, + "declaration": 1734, "isOffset": false, "isSlot": false, "src": "1014:12:16", @@ -101,7 +101,7 @@ }, { "transactions": { - "declaration": 1608, + "declaration": 1734, "isOffset": false, "isSlot": false, "src": "1075:12:16", @@ -109,15 +109,15 @@ } } ], - "id": 1611, + "id": 1737, "nodeType": "InlineAssembly", - "operations": "{\n let length := mload(transactions)\n let i := 0x20\n for {\n }\n lt(i, length)\n {\n }\n {\n let to := mload(add(transactions, i))\n let value := mload(add(transactions, add(i, 0x20)))\n let dataLength := mload(add(transactions, add(i, 0x60)))\n let data := add(transactions, add(i, 0x80))\n switch call(gas(), to, value, data, dataLength, 0, 0)\n case 0 {\n revert(0, 0)\n }\n i := add(i, add(0x80, mul(div(add(dataLength, 0x20), 0x20), 0x20)))\n }\n}", + "operations": "{\n let length := mload(transactions)\n let i := 0x20\n for {\n }\n lt(i, length)\n {\n }\n {\n let to := mload(add(transactions, i))\n let value := mload(add(transactions, add(i, 0x20)))\n let dataLength := mload(add(transactions, add(i, 0x60)))\n let data := add(transactions, add(i, 0x80))\n switch call(gas(), to, value, data, dataLength, 0, 0)\n case 0 {\n revert(0, 0)\n }\n i := add(i, add(0x80, mul(div(add(dataLength, 0x1f), 0x20), 0x20)))\n }\n}", "src": "725:599:16" } ] }, "documentation": "@dev Sends multiple transactions and reverts all if one fails.\n @param transactions Encoded transactions. Each transaction is encoded as\n a tuple(address,uint256,bytes). The bytes of all\n encoded transactions are concatenated to form the input.", - "id": 1613, + "id": 1739, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -125,15 +125,15 @@ "name": "multiSend", "nodeType": "FunctionDefinition", "parameters": { - "id": 1609, + "id": 1735, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1608, + "id": 1734, "name": "transactions", "nodeType": "VariableDeclaration", - "scope": 1613, + "scope": 1739, "src": "612:18:16", "stateVariable": false, "storageLocation": "default", @@ -142,7 +142,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1607, + "id": 1733, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "612:5:16", @@ -159,19 +159,19 @@ }, "payable": false, "returnParameters": { - "id": 1610, + "id": 1736, "nodeType": "ParameterList", "parameters": [], "src": "651:0:16" }, - "scope": 1614, + "scope": 1740, "src": "593:731:16", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1615, + "scope": 1741, "src": "253:1073:16" } ], @@ -181,18 +181,18 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", "exportedSymbols": { "MultiSend": [ - 1614 + 1740 ] }, - "id": 1615, + "id": 1741, "nodeType": "SourceUnit", "nodes": [ { - "id": 1606, + "id": 1732, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", "src": "0:23:16" @@ -203,16 +203,16 @@ "contractKind": "contract", "documentation": "@title Multi Send - Allows to batch multiple transactions into one.\n @author Nick Dodson - \n @author Gonçalo Sá - \n @author Stefan George - ", "fullyImplemented": true, - "id": 1614, + "id": 1740, "linearizedBaseContracts": [ - 1614 + 1740 ], "name": "MultiSend", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1612, + "id": 1738, "nodeType": "Block", "src": "651:673:16", "statements": [ @@ -220,7 +220,7 @@ "externalReferences": [ { "transactions": { - "declaration": 1608, + "declaration": 1734, "isOffset": false, "isSlot": false, "src": "768:12:16", @@ -229,7 +229,7 @@ }, { "transactions": { - "declaration": 1608, + "declaration": 1734, "isOffset": false, "isSlot": false, "src": "884:12:16", @@ -238,7 +238,7 @@ }, { "transactions": { - "declaration": 1608, + "declaration": 1734, "isOffset": false, "isSlot": false, "src": "941:12:16", @@ -247,7 +247,7 @@ }, { "transactions": { - "declaration": 1608, + "declaration": 1734, "isOffset": false, "isSlot": false, "src": "1014:12:16", @@ -256,7 +256,7 @@ }, { "transactions": { - "declaration": 1608, + "declaration": 1734, "isOffset": false, "isSlot": false, "src": "1075:12:16", @@ -264,15 +264,15 @@ } } ], - "id": 1611, + "id": 1737, "nodeType": "InlineAssembly", - "operations": "{\n let length := mload(transactions)\n let i := 0x20\n for {\n }\n lt(i, length)\n {\n }\n {\n let to := mload(add(transactions, i))\n let value := mload(add(transactions, add(i, 0x20)))\n let dataLength := mload(add(transactions, add(i, 0x60)))\n let data := add(transactions, add(i, 0x80))\n switch call(gas(), to, value, data, dataLength, 0, 0)\n case 0 {\n revert(0, 0)\n }\n i := add(i, add(0x80, mul(div(add(dataLength, 0x20), 0x20), 0x20)))\n }\n}", + "operations": "{\n let length := mload(transactions)\n let i := 0x20\n for {\n }\n lt(i, length)\n {\n }\n {\n let to := mload(add(transactions, i))\n let value := mload(add(transactions, add(i, 0x20)))\n let dataLength := mload(add(transactions, add(i, 0x60)))\n let data := add(transactions, add(i, 0x80))\n switch call(gas(), to, value, data, dataLength, 0, 0)\n case 0 {\n revert(0, 0)\n }\n i := add(i, add(0x80, mul(div(add(dataLength, 0x1f), 0x20), 0x20)))\n }\n}", "src": "725:599:16" } ] }, "documentation": "@dev Sends multiple transactions and reverts all if one fails.\n @param transactions Encoded transactions. Each transaction is encoded as\n a tuple(address,uint256,bytes). The bytes of all\n encoded transactions are concatenated to form the input.", - "id": 1613, + "id": 1739, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -280,15 +280,15 @@ "name": "multiSend", "nodeType": "FunctionDefinition", "parameters": { - "id": 1609, + "id": 1735, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1608, + "id": 1734, "name": "transactions", "nodeType": "VariableDeclaration", - "scope": 1613, + "scope": 1739, "src": "612:18:16", "stateVariable": false, "storageLocation": "default", @@ -297,7 +297,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1607, + "id": 1733, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "612:5:16", @@ -314,19 +314,19 @@ }, "payable": false, "returnParameters": { - "id": 1610, + "id": 1736, "nodeType": "ParameterList", "parameters": [], "src": "651:0:16" }, - "scope": 1614, + "scope": 1740, "src": "593:731:16", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1615, + "scope": 1741, "src": "253:1073:16" } ], @@ -334,46 +334,28 @@ }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { "4": { "events": {}, "links": {}, - "address": "0xeb51df3ce4e31ee60ed86cc860e68a4f892960cc", - "transactionHash": "0x1a3baba678d7b4d4c2ae5d151176442d5306e7958e83cecf49a6256fdfd2f4cb" - }, - "1525950336085": { - "events": {}, - "links": {}, - "address": "0xa4604b882b2c10ce381c4e61ad9ac72ab32f350f", - "transactionHash": "0xf4586ae05ae02801de1759128e43658bb0439e622a5ba84ad6bb4b652d641f4f" - }, - "1526283540628": { - "events": {}, - "links": {}, - "address": "0xf5cfa4069271285402ba2585c521c6c627810963", - "transactionHash": "0xf4586ae05ae02801de1759128e43658bb0439e622a5ba84ad6bb4b652d641f4f" - }, - "1526478212260": { - "events": {}, - "links": {}, - "address": "0x20658014abeebf3f064bf4442a5cd160143b800e", - "transactionHash": "0xf4586ae05ae02801de1759128e43658bb0439e622a5ba84ad6bb4b652d641f4f" - }, - "1526973574996": { - "events": {}, - "links": {}, - "address": "0xf27293ee4c8876589b0e197d3bebb2402c798e1f", - "transactionHash": "0xf4586ae05ae02801de1759128e43658bb0439e622a5ba84ad6bb4b652d641f4f" + "address": "0x46ba31fce67f6e0cfdf767b2b24c8cfa56015334", + "transactionHash": "0x4d190832f77421880276d21d750264b5a465b1c38d09d44667ce6617a8dd6a2f" }, "1527316019334": { "events": {}, "links": {}, - "address": "0x0f72f565275c8985a41a0ea8346420a61004771d", - "transactionHash": "0xf4586ae05ae02801de1759128e43658bb0439e622a5ba84ad6bb4b652d641f4f" + "address": "0xb0945dc5aa1de7306033fe26a1bba93292ccf9b8", + "transactionHash": "0x09e43d5e80b83dd623f34456dac3db1c4a8610a5734a9b8bb210e0e97dfab47e" + }, + "1527420696956": { + "events": {}, + "links": {}, + "address": "0xf76104e6bd2085f236594bf61a3d818aa6eb6d8a", + "transactionHash": "0xd044f1662e339061a8cabf2b06ac94a9f86fcccf3f5d80ebd1bea2a7542d4021" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-26T06:28:28.360Z" + "updatedAt": "2018-05-27T11:31:46.257Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/MultiSendStruct.json b/safe-contracts/build/contracts/MultiSendStruct.json deleted file mode 100644 index d70c0251..00000000 --- a/safe-contracts/build/contracts/MultiSendStruct.json +++ /dev/null @@ -1,1688 +0,0 @@ -{ - "contractName": "MultiSendStruct", - "abi": [ - { - "constant": false, - "inputs": [ - { - "components": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - }, - { - "name": "data", - "type": "bytes" - } - ], - "name": "transactions", - "type": "tuple[]" - } - ], - "name": "multiSend", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506103c6806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f6fda4a14610046575b600080fd5b34801561005257600080fd5b5061006d60048036036100689190810190610291565b61006f565b005b60006100796100ed565b600091505b82518210156100d057828281518110151561009557fe5b9060200190602002015190506100b88160000151826020015183604001516100d5565b15156100c357600080fd5b818060010192505061007e565b505050565b600080600083516020850186885af190509392505050565b606060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b60006101318235610353565b905092915050565b600082601f830112151561014c57600080fd5b813561015f61015a826102ff565b6102d2565b9150818183526020840193506020810190508360005b838110156101a5578135860161018b8882610205565b845260208401935060208301925050600181019050610175565b5050505092915050565b600082601f83011215156101c257600080fd5b81356101d56101d082610327565b6102d2565b915080825260208301602083018583830111156101f157600080fd5b6101fc83828461037d565b50505092915050565b60006060828403121561021757600080fd5b61022160606102d2565b9050600061023184828501610125565b60008301525060206102458482850161027d565b602083015250604082013567ffffffffffffffff81111561026557600080fd5b610271848285016101af565b60408301525092915050565b60006102898235610373565b905092915050565b6000602082840312156102a357600080fd5b600082013567ffffffffffffffff8111156102bd57600080fd5b6102c984828501610139565b91505092915050565b6000604051905081810181811067ffffffffffffffff821117156102f557600080fd5b8060405250919050565b600067ffffffffffffffff82111561031657600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561033e57600080fd5b601f19601f8301169050602081019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b828183376000838301525050505600a265627a7a7230582005384089695c7c77816220e122b3c45435a664207e3c979cd8b6653c05e379236c6578706572696d656e74616cf50037", - "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f6fda4a14610046575b600080fd5b34801561005257600080fd5b5061006d60048036036100689190810190610291565b61006f565b005b60006100796100ed565b600091505b82518210156100d057828281518110151561009557fe5b9060200190602002015190506100b88160000151826020015183604001516100d5565b15156100c357600080fd5b818060010192505061007e565b505050565b600080600083516020850186885af190509392505050565b606060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b60006101318235610353565b905092915050565b600082601f830112151561014c57600080fd5b813561015f61015a826102ff565b6102d2565b9150818183526020840193506020810190508360005b838110156101a5578135860161018b8882610205565b845260208401935060208301925050600181019050610175565b5050505092915050565b600082601f83011215156101c257600080fd5b81356101d56101d082610327565b6102d2565b915080825260208301602083018583830111156101f157600080fd5b6101fc83828461037d565b50505092915050565b60006060828403121561021757600080fd5b61022160606102d2565b9050600061023184828501610125565b60008301525060206102458482850161027d565b602083015250604082013567ffffffffffffffff81111561026557600080fd5b610271848285016101af565b60408301525092915050565b60006102898235610373565b905092915050565b6000602082840312156102a357600080fd5b600082013567ffffffffffffffff8111156102bd57600080fd5b6102c984828501610139565b91505092915050565b6000604051905081810181811067ffffffffffffffff821117156102f557600080fd5b8060405250919050565b600067ffffffffffffffff82111561031657600080fd5b602082029050602081019050919050565b600067ffffffffffffffff82111561033e57600080fd5b601f19601f8301169050602081019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b828183376000838301525050505600a265627a7a7230582005384089695c7c77816220e122b3c45435a664207e3c979cd8b6653c05e379236c6578706572696d656e74616cf50037", - "sourceMap": "339:839:17:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;339:839:17;;;;;;;", - "deployedSourceMap": "339:839:17:-;;;;;;;;;;;;;;;;;;;;;;;;587:291;;8:9:-1;5:2;;;30:1;27;20:12;5:2;587:291:17;;;;;;;;;;;;;;;;;;;;667:9;726:30;;:::i;:::-;679:1;667:13;;663:209;686:12;:19;682:1;:23;663:209;;;759:12;772:1;759:15;;;;;;;;;;;;;;;;;;726:48;;796:64;808:11;:14;;;824:11;:17;;;843:11;:16;;;796:11;:64::i;:::-;788:73;;;;;;;;707:3;;;;;;;663:209;;;587:291;;;:::o;884:292::-;978:12;1158:1;1155;1148:4;1142:11;1135:4;1129;1125:15;1118:5;1114:2;1109:3;1104:56;1093:67;;1079:91;;;;;:::o;339:839::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:20;72:46;;;63:55;;57:66;;;;;175:753;;317:3;310:4;302:6;298:17;294:27;287:35;284:2;;;335:1;332;325:12;284:2;372:6;359:20;394:105;409:89;491:6;409:89;;;394:105;;;385:114;;516:5;541:6;534:5;527:21;571:4;563:6;559:17;549:27;;593:4;588:3;584:14;577:21;;646:6;679:1;664:258;689:6;686:1;683:13;664:258;;;772:3;759:17;751:6;747:30;796:62;854:3;842:10;796:62;;;791:3;784:75;882:4;877:3;873:14;866:21;;910:4;905:3;901:14;894:21;;721:201;711:1;708;704:9;699:14;;664:258;;;668:14;277:651;;;;;;;;937:432;;1034:3;1027:4;1019:6;1015:17;1011:27;1004:35;1001:2;;;1052:1;1049;1042:12;1001:2;1089:6;1076:20;1111:60;1126:44;1163:6;1126:44;;;1111:60;;;1102:69;;1191:6;1184:5;1177:21;1227:4;1219:6;1215:17;1260:4;1253:5;1249:16;1295:3;1286:6;1281:3;1277:16;1274:25;1271:2;;;1312:1;1309;1302:12;1271:2;1322:41;1356:6;1351:3;1346;1322:41;;;994:375;;;;;;;;1418:700;;1532:4;1520:9;1515:3;1511:19;1507:30;1504:2;;;1550:1;1547;1540:12;1504:2;1568:20;1583:4;1568:20;;;1559:29;;1636:1;1667:49;1712:3;1703:6;1692:9;1688:22;1667:49;;;1661:3;1654:5;1650:15;1643:74;1598:130;1779:2;1812:49;1857:3;1848:6;1837:9;1833:22;1812:49;;;1805:4;1798:5;1794:16;1787:75;1738:135;1951:2;1940:9;1936:18;1923:32;1975:18;1967:6;1964:30;1961:2;;;2007:1;2004;1997:12;1961:2;2042:54;2092:3;2083:6;2072:9;2068:22;2042:54;;;2035:4;2028:5;2024:16;2017:80;1883:225;1498:620;;;;;2125:118;;2192:46;2230:6;2217:20;2192:46;;;2183:55;;2177:66;;;;;2250:427;;2404:2;2392:9;2383:7;2379:23;2375:32;2372:2;;;2420:1;2417;2410:12;2372:2;2483:1;2472:9;2468:17;2455:31;2506:18;2498:6;2495:30;2492:2;;;2538:1;2535;2528:12;2492:2;2558:103;2653:7;2644:6;2633:9;2629:22;2558:103;;;2548:113;;2434:233;2366:311;;;;;2684:256;;2746:2;2740:9;2730:19;;2784:4;2776:6;2772:17;2883:6;2871:10;2868:22;2847:18;2835:10;2832:34;2829:62;2826:2;;;2904:1;2901;2894:12;2826:2;2924:10;2920:2;2913:22;2724:216;;;;;2947:283;;3131:18;3123:6;3120:30;3117:2;;;3163:1;3160;3153:12;3117:2;3192:4;3184:6;3180:17;3172:25;;3220:4;3214;3210:15;3202:23;;3054:176;;;;3237:254;;3376:18;3368:6;3365:30;3362:2;;;3408:1;3405;3398:12;3362:2;3452:4;3448:9;3441:4;3433:6;3429:17;3425:33;3417:41;;3481:4;3475;3471:15;3463:23;;3299:192;;;;3498:128;;3578:42;3571:5;3567:54;3556:65;;3550:76;;;;3633:79;;3702:5;3691:16;;3685:27;;;;3720:145;3801:6;3796:3;3791;3778:30;3857:1;3848:6;3843:3;3839:16;3832:27;3771:94;;;", - "source": "pragma solidity ^0.4.23;\npragma experimental ABIEncoderV2;\n\n\n/// @title Multi Send - Allows to batch multiple transactions into one.\n/// @author Nick Dodson - \n/// @author Gonçalo Sá - \n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract MultiSendStruct {\n\n struct Transaction {\n address to;\n uint256 value;\n bytes data;\n }\n\n /// @dev Sends multiple transactions and reverts all if one fails.\n /// @param transactions Encoded transactions.\n function multiSend(Transaction[] transactions)\n public\n {\n for(uint256 i = 0; i < transactions.length; i++) {\n Transaction memory transaction = transactions[i];\n require(executeCall(transaction.to, transaction.value, transaction.data));\n }\n }\n\n function executeCall(address to, uint256 value, bytes data)\n internal\n returns (bool success)\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n success := call(gas, to, value, add(data, 0x20), mload(data), 0, 0)\n }\n }\n}\n", - "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSendStruct.sol", - "ast": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSendStruct.sol", - "exportedSymbols": { - "MultiSendStruct": [ - 1675 - ] - }, - "id": 1676, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1616, - "literals": [ - "solidity", - "^", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:24:17" - }, - { - "id": 1617, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "25:33:17" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Multi Send - Allows to batch multiple transactions into one.\n @author Nick Dodson - \n @author Gonçalo Sá - \n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1675, - "linearizedBaseContracts": [ - 1675 - ], - "name": "MultiSendStruct", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "MultiSendStruct.Transaction", - "id": 1624, - "members": [ - { - "constant": false, - "id": 1619, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1624, - "src": "400:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1618, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "400:7:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1621, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1624, - "src": "420:13:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1620, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "420:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1623, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1624, - "src": "443:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1622, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "443:5:17", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Transaction", - "nodeType": "StructDefinition", - "scope": 1675, - "src": "371:89:17", - "visibility": "public" - }, - { - "body": { - "id": 1660, - "nodeType": "Block", - "src": "653:225:17", - "statements": [ - { - "body": { - "id": 1658, - "nodeType": "Block", - "src": "712:160:17", - "statements": [ - { - "assignments": [ - 1642 - ], - "declarations": [ - { - "constant": false, - "id": 1642, - "name": "transaction", - "nodeType": "VariableDeclaration", - "scope": 1661, - "src": "726:30:17", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$1624_memory_ptr", - "typeString": "struct MultiSendStruct.Transaction" - }, - "typeName": { - "contractScope": null, - "id": 1641, - "name": "Transaction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1624, - "src": "726:11:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$1624_storage_ptr", - "typeString": "struct MultiSendStruct.Transaction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1646, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1643, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1627, - "src": "759:12:17", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$1624_memory_$dyn_memory_ptr", - "typeString": "struct MultiSendStruct.Transaction memory[] memory" - } - }, - "id": 1645, - "indexExpression": { - "argumentTypes": null, - "id": 1644, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1631, - "src": "772:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "759:15:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$1624_memory", - "typeString": "struct MultiSendStruct.Transaction memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "726:48:17" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1649, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1642, - "src": "808:11:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$1624_memory_ptr", - "typeString": "struct MultiSendStruct.Transaction memory" - } - }, - "id": 1650, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "to", - "nodeType": "MemberAccess", - "referencedDeclaration": 1619, - "src": "808:14:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1651, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1642, - "src": "824:11:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$1624_memory_ptr", - "typeString": "struct MultiSendStruct.Transaction memory" - } - }, - "id": 1652, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 1621, - "src": "824:17:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1653, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1642, - "src": "843:11:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$1624_memory_ptr", - "typeString": "struct MultiSendStruct.Transaction memory" - } - }, - "id": 1654, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": 1623, - "src": "843:16:17", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - ], - "id": 1648, - "name": "executeCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1674, - "src": "796:11:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory) returns (bool)" - } - }, - "id": 1655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "796:64:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1647, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2468, - 2469 - ], - "referencedDeclaration": 2468, - "src": "788:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "788:73:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1657, - "nodeType": "ExpressionStatement", - "src": "788:73:17" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1634, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1631, - "src": "682:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1635, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1627, - "src": "686:12:17", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$1624_memory_$dyn_memory_ptr", - "typeString": "struct MultiSendStruct.Transaction memory[] memory" - } - }, - "id": 1636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "686:19:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "682:23:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1659, - "initializationExpression": { - "assignments": [ - 1631 - ], - "declarations": [ - { - "constant": false, - "id": 1631, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1661, - "src": "667:9:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1630, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "667:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1633, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "679:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "667:13:17" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "707:3:17", - "subExpression": { - "argumentTypes": null, - "id": 1638, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1631, - "src": "707:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1640, - "nodeType": "ExpressionStatement", - "src": "707:3:17" - }, - "nodeType": "ForStatement", - "src": "663:209:17" - } - ] - }, - "documentation": "@dev Sends multiple transactions and reverts all if one fails.\n @param transactions Encoded transactions.", - "id": 1661, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "multiSend", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1628, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1627, - "name": "transactions", - "nodeType": "VariableDeclaration", - "scope": 1661, - "src": "606:26:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$1624_memory_$dyn_memory_ptr", - "typeString": "struct MultiSendStruct.Transaction[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 1625, - "name": "Transaction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1624, - "src": "606:11:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$1624_storage_ptr", - "typeString": "struct MultiSendStruct.Transaction" - } - }, - "id": 1626, - "length": null, - "nodeType": "ArrayTypeName", - "src": "606:13:17", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$1624_storage_$dyn_storage_ptr", - "typeString": "struct MultiSendStruct.Transaction[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "605:28:17" - }, - "payable": false, - "returnParameters": { - "id": 1629, - "nodeType": "ParameterList", - "parameters": [], - "src": "653:0:17" - }, - "scope": 1675, - "src": "587:291:17", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1673, - "nodeType": "Block", - "src": "996:180:17", - "statements": [ - { - "externalReferences": [ - { - "data": { - "declaration": 1667, - "isOffset": false, - "isSlot": false, - "src": "1148:4:17", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1667, - "isOffset": false, - "isSlot": false, - "src": "1129:4:17", - "valueSize": 1 - } - }, - { - "success": { - "declaration": 1670, - "isOffset": false, - "isSlot": false, - "src": "1093:7:17", - "valueSize": 1 - } - }, - { - "to": { - "declaration": 1663, - "isOffset": false, - "isSlot": false, - "src": "1114:2:17", - "valueSize": 1 - } - }, - { - "value": { - "declaration": 1665, - "isOffset": false, - "isSlot": false, - "src": "1118:5:17", - "valueSize": 1 - } - } - ], - "id": 1672, - "nodeType": "InlineAssembly", - "operations": "{\n success := call(gas(), to, value, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1070:106:17" - } - ] - }, - "documentation": null, - "id": 1674, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1668, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1663, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1674, - "src": "905:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1662, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "905:7:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1665, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1674, - "src": "917:13:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1664, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "917:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1667, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1674, - "src": "932:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1666, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "932:5:17", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "904:39:17" - }, - "payable": false, - "returnParameters": { - "id": 1671, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1670, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1674, - "src": "978:12:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1669, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "978:4:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "977:14:17" - }, - "scope": 1675, - "src": "884:292:17", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1676, - "src": "339:839:17" - } - ], - "src": "0:1179:17" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSendStruct.sol", - "exportedSymbols": { - "MultiSendStruct": [ - 1675 - ] - }, - "id": 1676, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1616, - "literals": [ - "solidity", - "^", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:24:17" - }, - { - "id": 1617, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "25:33:17" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title Multi Send - Allows to batch multiple transactions into one.\n @author Nick Dodson - \n @author Gonçalo Sá - \n @author Stefan George - \n @author Richard Meissner - ", - "fullyImplemented": true, - "id": 1675, - "linearizedBaseContracts": [ - 1675 - ], - "name": "MultiSendStruct", - "nodeType": "ContractDefinition", - "nodes": [ - { - "canonicalName": "MultiSendStruct.Transaction", - "id": 1624, - "members": [ - { - "constant": false, - "id": 1619, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1624, - "src": "400:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1618, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "400:7:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1621, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1624, - "src": "420:13:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1620, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "420:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1623, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1624, - "src": "443:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1622, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "443:5:17", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Transaction", - "nodeType": "StructDefinition", - "scope": 1675, - "src": "371:89:17", - "visibility": "public" - }, - { - "body": { - "id": 1660, - "nodeType": "Block", - "src": "653:225:17", - "statements": [ - { - "body": { - "id": 1658, - "nodeType": "Block", - "src": "712:160:17", - "statements": [ - { - "assignments": [ - 1642 - ], - "declarations": [ - { - "constant": false, - "id": 1642, - "name": "transaction", - "nodeType": "VariableDeclaration", - "scope": 1661, - "src": "726:30:17", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$1624_memory_ptr", - "typeString": "struct MultiSendStruct.Transaction" - }, - "typeName": { - "contractScope": null, - "id": 1641, - "name": "Transaction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1624, - "src": "726:11:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$1624_storage_ptr", - "typeString": "struct MultiSendStruct.Transaction" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1646, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1643, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1627, - "src": "759:12:17", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$1624_memory_$dyn_memory_ptr", - "typeString": "struct MultiSendStruct.Transaction memory[] memory" - } - }, - "id": 1645, - "indexExpression": { - "argumentTypes": null, - "id": 1644, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1631, - "src": "772:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "759:15:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$1624_memory", - "typeString": "struct MultiSendStruct.Transaction memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "726:48:17" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1649, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1642, - "src": "808:11:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$1624_memory_ptr", - "typeString": "struct MultiSendStruct.Transaction memory" - } - }, - "id": 1650, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "to", - "nodeType": "MemberAccess", - "referencedDeclaration": 1619, - "src": "808:14:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1651, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1642, - "src": "824:11:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$1624_memory_ptr", - "typeString": "struct MultiSendStruct.Transaction memory" - } - }, - "id": 1652, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": 1621, - "src": "824:17:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1653, - "name": "transaction", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1642, - "src": "843:11:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$1624_memory_ptr", - "typeString": "struct MultiSendStruct.Transaction memory" - } - }, - "id": 1654, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "data", - "nodeType": "MemberAccess", - "referencedDeclaration": 1623, - "src": "843:16:17", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory", - "typeString": "bytes memory" - } - ], - "id": 1648, - "name": "executeCall", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1674, - "src": "796:11:17", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,uint256,bytes memory) returns (bool)" - } - }, - "id": 1655, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "796:64:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1647, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2468, - 2469 - ], - "referencedDeclaration": 2468, - "src": "788:7:17", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "788:73:17", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1657, - "nodeType": "ExpressionStatement", - "src": "788:73:17" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1637, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1634, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1631, - "src": "682:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1635, - "name": "transactions", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1627, - "src": "686:12:17", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$1624_memory_$dyn_memory_ptr", - "typeString": "struct MultiSendStruct.Transaction memory[] memory" - } - }, - "id": 1636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "686:19:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "682:23:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1659, - "initializationExpression": { - "assignments": [ - 1631 - ], - "declarations": [ - { - "constant": false, - "id": 1631, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 1661, - "src": "667:9:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1630, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "667:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1633, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 1632, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "679:1:17", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "667:13:17" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "707:3:17", - "subExpression": { - "argumentTypes": null, - "id": 1638, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1631, - "src": "707:1:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1640, - "nodeType": "ExpressionStatement", - "src": "707:3:17" - }, - "nodeType": "ForStatement", - "src": "663:209:17" - } - ] - }, - "documentation": "@dev Sends multiple transactions and reverts all if one fails.\n @param transactions Encoded transactions.", - "id": 1661, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "multiSend", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1628, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1627, - "name": "transactions", - "nodeType": "VariableDeclaration", - "scope": 1661, - "src": "606:26:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$1624_memory_$dyn_memory_ptr", - "typeString": "struct MultiSendStruct.Transaction[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 1625, - "name": "Transaction", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1624, - "src": "606:11:17", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Transaction_$1624_storage_ptr", - "typeString": "struct MultiSendStruct.Transaction" - } - }, - "id": 1626, - "length": null, - "nodeType": "ArrayTypeName", - "src": "606:13:17", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Transaction_$1624_storage_$dyn_storage_ptr", - "typeString": "struct MultiSendStruct.Transaction[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "605:28:17" - }, - "payable": false, - "returnParameters": { - "id": 1629, - "nodeType": "ParameterList", - "parameters": [], - "src": "653:0:17" - }, - "scope": 1675, - "src": "587:291:17", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1673, - "nodeType": "Block", - "src": "996:180:17", - "statements": [ - { - "externalReferences": [ - { - "data": { - "declaration": 1667, - "isOffset": false, - "isSlot": false, - "src": "1148:4:17", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1667, - "isOffset": false, - "isSlot": false, - "src": "1129:4:17", - "valueSize": 1 - } - }, - { - "success": { - "declaration": 1670, - "isOffset": false, - "isSlot": false, - "src": "1093:7:17", - "valueSize": 1 - } - }, - { - "to": { - "declaration": 1663, - "isOffset": false, - "isSlot": false, - "src": "1114:2:17", - "valueSize": 1 - } - }, - { - "value": { - "declaration": 1665, - "isOffset": false, - "isSlot": false, - "src": "1118:5:17", - "valueSize": 1 - } - } - ], - "id": 1672, - "nodeType": "InlineAssembly", - "operations": "{\n success := call(gas(), to, value, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "1070:106:17" - } - ] - }, - "documentation": null, - "id": 1674, - "implemented": true, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "executeCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1668, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1663, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 1674, - "src": "905:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1662, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "905:7:17", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1665, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 1674, - "src": "917:13:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1664, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "917:7:17", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1667, - "name": "data", - "nodeType": "VariableDeclaration", - "scope": 1674, - "src": "932:10:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1666, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "932:5:17", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "904:39:17" - }, - "payable": false, - "returnParameters": { - "id": 1671, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1670, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1674, - "src": "978:12:17", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1669, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "978:4:17", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "977:14:17" - }, - "scope": 1675, - "src": "884:292:17", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 1676, - "src": "339:839:17" - } - ], - "src": "0:1179:17" - }, - "compiler": { - "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-05-10T10:43:07.902Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/OwnerManager.json b/safe-contracts/build/contracts/OwnerManager.json index cf8b0653..e929f63a 100644 --- a/safe-contracts/build/contracts/OwnerManager.json +++ b/safe-contracts/build/contracts/OwnerManager.json @@ -139,40 +139,40 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610efa806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f54bf6e1461009357806386040aa9146100ee5780638cff63551461015e578063a0e67e2b146101b5578063b7f3358d14610221578063b91a667f14610251578063e318b52b146102a1578063e75235b814610324575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610355565b604051808215151515815260200191505060405180910390f35b3480156100fa57600080fd5b5061015c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506103d6565b005b34801561016a57600080fd5b50610173610657565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c157600080fd5b506101ca61065c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561020d5780820151818401526020810190506101f2565b505050509050019250505060405180910390f35b34801561022d57600080fd5b5061024f600480360381019080803560ff1690602001909291905050506107f5565b005b34801561025d57600080fd5b5061029f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610874565b005b3480156102ad57600080fd5b50610322600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b28565b005b34801561033057600080fd5b50610339610eb7565b604051808260ff1660ff16815260200191505060405180910390f35b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561041057600080fd5b8060ff1660018054031015151561042657600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156104be57600080fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008154809291906001900391905055508060ff16600260009054906101000a900460ff1660ff1614151561065257610651816107f5565b5b505050565b600181565b6060806000806001546040519080825280602002602001820160405280156106935781602001602082028038833980820191505090505b50925060009150600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156107ec5780838381518110151561074257fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506106fd565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561082f57600080fd5b6001548160ff161115151561084357600080fd5b60018160ff161015151561085657600080fd5b80600260006101000a81548160ff021916908360ff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108ae57600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156109025750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561090d57600080fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561099057600080fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055508060ff16600260009054906101000a900460ff1660ff16141515610b2457610b23816107f5565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b6257600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610bb65750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610bc157600080fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610c4457600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610cdc57600080fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600260009054906101000a900460ff169050905600a165627a7a72305820372e97755cf66d7d4dedc8cf9b71ad26a96c66a3db678bac90c5e04bea67c8ab0029", - "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f54bf6e1461009357806386040aa9146100ee5780638cff63551461015e578063a0e67e2b146101b5578063b7f3358d14610221578063b91a667f14610251578063e318b52b146102a1578063e75235b814610324575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610355565b604051808215151515815260200191505060405180910390f35b3480156100fa57600080fd5b5061015c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506103d6565b005b34801561016a57600080fd5b50610173610657565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c157600080fd5b506101ca61065c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561020d5780820151818401526020810190506101f2565b505050509050019250505060405180910390f35b34801561022d57600080fd5b5061024f600480360381019080803560ff1690602001909291905050506107f5565b005b34801561025d57600080fd5b5061029f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610874565b005b3480156102ad57600080fd5b50610322600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b28565b005b34801561033057600080fd5b50610339610eb7565b604051808260ff1660ff16815260200191505060405180910390f35b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561041057600080fd5b8060ff1660018054031015151561042657600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156104be57600080fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008154809291906001900391905055508060ff16600260009054906101000a900460ff1660ff1614151561065257610651816107f5565b5b505050565b600181565b6060806000806001546040519080825280602002602001820160405280156106935781602001602082028038833980820191505090505b50925060009150600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156107ec5780838381518110151561074257fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506106fd565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561082f57600080fd5b6001548160ff161115151561084357600080fd5b60018160ff161015151561085657600080fd5b80600260006101000a81548160ff021916908360ff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108ae57600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156109025750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561090d57600080fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561099057600080fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055508060ff16600260009054906101000a900460ff1660ff16141515610b2457610b23816107f5565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b6257600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610bb65750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610bc157600080fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610c4457600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610cdc57600080fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600260009054906101000a900460ff169050905600a165627a7a72305820372e97755cf66d7d4dedc8cf9b71ad26a96c66a3db678bac90c5e04bea67c8ab0029", - "sourceMap": "240:5272:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;240:5272:7;;;;;;;", - "deployedSourceMap": "240:5272:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4841:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4841:129:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2776:573;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;5052:458;;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;;;;;;;;;;;;;;;;;4398:318;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3683:526;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;4841:129;4918:4;4962:1;4945:6;:13;4952:5;4945:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;4938:25;;4841:129;;;:::o;2776:573::-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;3000:10:7;2982:28;;2995:1;2982:10;;:14;:28;;2974:37;;;;;;;;3112:5;3091:26;;:6;:17;3098:9;3091:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3083:35;;;;;;;;3148:6;:13;3155:5;3148:13;;;;;;;;;;;;;;;;;;;;;;;;;3128:6;:17;3135:9;3128:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3187:1;3171:6;:13;3178:5;3171:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3198:10;;:12;;;;;;;;;;;;;;3291:10;3278:23;;:9;;;;;;;;;;;:23;;;;3274:68;;;3315:27;3331:10;3315:15;:27::i;:::-;3274:68;2776:573;;;:::o;287:54::-;337:3;287:54;:::o;5052:458::-;5118:9;5143:22;5237:13;5264:20;5182:10;;5168:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5168:25:7;;;;5143:50;;5253:1;5237:17;;5287:6;:23;337:3;5287:23;;;;;;;;;;;;;;;;;;;;;;;;;5264:46;;5320:162;337:3;5326:31;;:12;:31;;;;5320:162;;;5388:12;5373:5;5379;5373:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;5429:6;:20;5436:12;5429:20;;;;;;;;;;;;;;;;;;;;;;;;;5414:35;;5463:8;;;;;;;5320:162;;;5498:5;5491:12;;5052:458;;;;:::o;4398:318::-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;4580:10:7;;4566;:24;;;;4558:33;;;;;;;;4675:1;4661:10;:15;;;;4653:24;;;;;;;;4699:10;4687:9;;:22;;;;;;;;;;;;;;;;;;4398:318;:::o;1906:528::-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;2076:1:7;2067:5;:10;;;;:38;;;;;337:3;2081:24;;:5;:24;;;;2067:38;2059:47;;;;;;;;2181:1;2164:6;:13;2171:5;2164:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2156:27;;;;;;;;2209:6;:23;337:3;2209:23;;;;;;;;;;;;;;;;;;;;;;;;;2193:6;:13;2200:5;2193:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2268:5;2242:6;:23;337:3;2242:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2283:10;;:12;;;;;;;;;;;;;2376:10;2363:23;;:9;;;;;;;;;;;:23;;;;2359:68;;;2400:27;2416:10;2400:15;:27::i;:::-;2359:68;1906:528;;:::o;3683:526::-;244:4:8;222:27;;:10;:27;;;214:36;;;;;;;;3866:1:7;3854:8;:13;;;;:44;;;;;337:3;3871:27;;:8;:27;;;;3854:44;3846:53;;;;;;;;3977:1;3957:6;:16;3964:8;3957:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;3949:30;;;;;;;;4080:8;4059:29;;:6;:17;4066:9;4059:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4051:38;;;;;;;;4118:6;:16;4125:8;4118:16;;;;;;;;;;;;;;;;;;;;;;;;;4099:6;:16;4106:8;4099:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4164:8;4144:6;:17;4151:9;4144:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4201:1;4182:6;:16;4189:8;4182:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;3683:526;;;:::o;4722:113::-;4791:5;4819:9;;;;;;;;;;;4812:16;;4722:113;:::o", - "source": "pragma solidity 0.4.23;\nimport \"./SelfAuthorized.sol\";\n\n/// @title OwnerManager - Manages a set of owners and a threshold to perform actions.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract OwnerManager is SelfAuthorized {\n\n address public constant SENTINEL_OWNERS = address(0x1);\n\n mapping(address => address) internal owners;\n uint256 ownerCount;\n uint8 internal threshold;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n function setupOwners(address[] _owners, uint8 _threshold)\n internal\n {\n // Threshold can only be 0 at initialization.\n // Check ensures that setup function can only be called once.\n require(threshold == 0);\n // Validate that threshold is smaller than number of added owners.\n require(_threshold <= _owners.length);\n // There has to be at least one Safe owner.\n require(_threshold >= 1);\n // Initializing Safe owners.\n address currentOwner = SENTINEL_OWNERS;\n for (uint256 i = 0; i < _owners.length; i++) {\n // Owner address cannot be null.\n address owner = _owners[i];\n require(owner != 0 && owner != SENTINEL_OWNERS);\n // No duplicate owners allowed.\n require(owners[owner] == 0);\n owners[currentOwner] = owner;\n currentOwner = owner;\n }\n owners[currentOwner] = SENTINEL_OWNERS;\n ownerCount = _owners.length;\n threshold = _threshold;\n }\n\n /// @dev Allows to add a new owner to the Safe and update the threshold at the same time.\n /// This can only be done via a Safe transaction.\n /// @param owner New owner address.\n /// @param _threshold New threshold.\n function addOwnerWithThreshold(address owner, uint8 _threshold)\n public\n authorized\n {\n // Owner address cannot be null.\n require(owner != 0 && owner != SENTINEL_OWNERS);\n // No duplicate owners allowed.\n require(owners[owner] == 0);\n owners[owner] = owners[SENTINEL_OWNERS];\n owners[SENTINEL_OWNERS] = owner;\n ownerCount++;\n // Change threshold if threshold was changed.\n if (threshold != _threshold)\n changeThreshold(_threshold);\n }\n\n /// @dev Allows to remove an owner from the Safe and update the threshold at the same time.\n /// This can only be done via a Safe transaction.\n /// @param prevOwner Owner that pointed to the owner to be removed in the linked list\n /// @param owner Owner address to be removed.\n /// @param _threshold New threshold.\n function removeOwner(address prevOwner, address owner, uint8 _threshold)\n public\n authorized\n {\n // Only allow to remove an owner, if threshold can still be reached.\n require(ownerCount - 1 >= _threshold);\n // Validate owner address corresponds to owner index.\n require(owners[prevOwner] == owner);\n owners[prevOwner] = owners[owner];\n owners[owner] = 0;\n ownerCount--;\n // Change threshold if threshold was changed.\n if (threshold != _threshold)\n changeThreshold(_threshold);\n }\n\n /// @dev Allows to swap/replace an owner from the Safe with another address.\n /// This can only be done via a Safe transaction.\n /// @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n /// @param oldOwner Owner address to be replaced.\n /// @param newOwner New owner address.\n function swapOwner(address prevOwner, address oldOwner, address newOwner)\n public\n authorized\n {\n // Owner address cannot be null.\n require(newOwner != 0 && newOwner != SENTINEL_OWNERS);\n // No duplicate owners allowed.\n require(owners[newOwner] == 0);\n // Validate owner address corresponds to owner index.\n require(owners[prevOwner] == oldOwner);\n owners[newOwner] = owners[oldOwner];\n owners[prevOwner] = newOwner;\n owners[oldOwner] = 0;\n }\n\n /// @dev Allows to update the number of required confirmations by Safe owners.\n /// This can only be done via a Safe transaction.\n /// @param _threshold New threshold.\n function changeThreshold(uint8 _threshold)\n public\n authorized\n {\n // Validate that threshold is smaller than number of owners.\n require(_threshold <= ownerCount);\n // There has to be at least one Safe owner.\n require(_threshold >= 1);\n threshold = _threshold;\n }\n\n function getThreshold()\n public\n view\n returns (uint8)\n {\n return threshold;\n }\n\n function isOwner(address owner)\n public\n view\n returns (bool)\n {\n return owners[owner] != 0;\n }\n\n /// @dev Returns array of owners.\n /// @return Array of Safe owners.\n function getOwners()\n public\n view\n returns (address[])\n {\n address[] memory array = new address[](ownerCount);\n\n // populate return array\n uint256 index = 0;\n address currentOwner = owners[SENTINEL_OWNERS];\n while(currentOwner != SENTINEL_OWNERS) {\n array[index] = currentOwner;\n currentOwner = owners[currentOwner];\n index ++;\n }\n return array;\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50610efa806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f54bf6e1461009357806386040aa9146100ee5780638cff63551461015e578063a0e67e2b146101b5578063b7f3358d14610221578063b91a667f14610251578063e318b52b146102a1578063e75235b814610324575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610355565b604051808215151515815260200191505060405180910390f35b3480156100fa57600080fd5b5061015c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506103d6565b005b34801561016a57600080fd5b50610173610657565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c157600080fd5b506101ca61065c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561020d5780820151818401526020810190506101f2565b505050509050019250505060405180910390f35b34801561022d57600080fd5b5061024f600480360381019080803560ff1690602001909291905050506107f5565b005b34801561025d57600080fd5b5061029f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610874565b005b3480156102ad57600080fd5b50610322600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b28565b005b34801561033057600080fd5b50610339610eb7565b604051808260ff1660ff16815260200191505060405180910390f35b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561041057600080fd5b8060ff1660018054031015151561042657600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156104be57600080fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008154809291906001900391905055508060ff16600260009054906101000a900460ff1660ff1614151561065257610651816107f5565b5b505050565b600181565b6060806000806001546040519080825280602002602001820160405280156106935781602001602082028038833980820191505090505b50925060009150600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156107ec5780838381518110151561074257fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506106fd565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561082f57600080fd5b6001548160ff161115151561084357600080fd5b60018160ff161015151561085657600080fd5b80600260006101000a81548160ff021916908360ff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108ae57600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156109025750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561090d57600080fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561099057600080fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055508060ff16600260009054906101000a900460ff1660ff16141515610b2457610b23816107f5565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b6257600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610bb65750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610bc157600080fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610c4457600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610cdc57600080fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600260009054906101000a900460ff169050905600a165627a7a723058207162ce7887c437c5aff253c6ee66707c5dd406c4fefdd37babe3c37d937512df0029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f54bf6e1461009357806386040aa9146100ee5780638cff63551461015e578063a0e67e2b146101b5578063b7f3358d14610221578063b91a667f14610251578063e318b52b146102a1578063e75235b814610324575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610355565b604051808215151515815260200191505060405180910390f35b3480156100fa57600080fd5b5061015c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506103d6565b005b34801561016a57600080fd5b50610173610657565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c157600080fd5b506101ca61065c565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561020d5780820151818401526020810190506101f2565b505050509050019250505060405180910390f35b34801561022d57600080fd5b5061024f600480360381019080803560ff1690602001909291905050506107f5565b005b34801561025d57600080fd5b5061029f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610874565b005b3480156102ad57600080fd5b50610322600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b28565b005b34801561033057600080fd5b50610339610eb7565b604051808260ff1660ff16815260200191505060405180910390f35b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561041057600080fd5b8060ff1660018054031015151561042657600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156104be57600080fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008154809291906001900391905055508060ff16600260009054906101000a900460ff1660ff1614151561065257610651816107f5565b5b505050565b600181565b6060806000806001546040519080825280602002602001820160405280156106935781602001602082028038833980820191505090505b50925060009150600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156107ec5780838381518110151561074257fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506106fd565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561082f57600080fd5b6001548160ff161115151561084357600080fd5b60018160ff161015151561085657600080fd5b80600260006101000a81548160ff021916908360ff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108ae57600080fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156109025750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561090d57600080fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561099057600080fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055508060ff16600260009054906101000a900460ff1660ff16141515610b2457610b23816107f5565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b6257600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610bb65750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610bc157600080fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610c4457600080fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610cdc57600080fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600260009054906101000a900460ff169050905600a165627a7a723058207162ce7887c437c5aff253c6ee66707c5dd406c4fefdd37babe3c37d937512df0029", + "sourceMap": "240:5272:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;240:5272:9;;;;;;;", + "deployedSourceMap": "240:5272:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4841:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4841:129:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2776:573;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2776:573:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:9;;;;;;;;;;;;;;;;;;;;;;;;;;;5052:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5052:458:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:9;;;;;;;;;;;;;;;;;4398:318;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4398:318:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;1906:528;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1906:528:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3683:526;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3683:526:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4722:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4722:113:9;;;;;;;;;;;;;;;;;;;;;;;;;;;4841:129;4918:4;4962:1;4945:6;:13;4952:5;4945:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;4938:25;;4841:129;;;:::o;2776:573::-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;3000:10:9;2982:28;;2995:1;2982:10;;:14;:28;;2974:37;;;;;;;;3112:5;3091:26;;:6;:17;3098:9;3091:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3083:35;;;;;;;;3148:6;:13;3155:5;3148:13;;;;;;;;;;;;;;;;;;;;;;;;;3128:6;:17;3135:9;3128:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3187:1;3171:6;:13;3178:5;3171:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3198:10;;:12;;;;;;;;;;;;;;3291:10;3278:23;;:9;;;;;;;;;;;:23;;;;3274:68;;;3315:27;3331:10;3315:15;:27::i;:::-;3274:68;2776:573;;;:::o;287:54::-;337:3;287:54;:::o;5052:458::-;5118:9;5143:22;5237:13;5264:20;5182:10;;5168:25;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;5168:25:9;;;;5143:50;;5253:1;5237:17;;5287:6;:23;337:3;5287:23;;;;;;;;;;;;;;;;;;;;;;;;;5264:46;;5320:162;337:3;5326:31;;:12;:31;;;;5320:162;;;5388:12;5373:5;5379;5373:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;5429:6;:20;5436:12;5429:20;;;;;;;;;;;;;;;;;;;;;;;;;5414:35;;5463:8;;;;;;;5320:162;;;5498:5;5491:12;;5052:458;;;;:::o;4398:318::-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;4580:10:9;;4566;:24;;;;4558:33;;;;;;;;4675:1;4661:10;:15;;;;4653:24;;;;;;;;4699:10;4687:9;;:22;;;;;;;;;;;;;;;;;;4398:318;:::o;1906:528::-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;2076:1:9;2067:5;:10;;;;:38;;;;;337:3;2081:24;;:5;:24;;;;2067:38;2059:47;;;;;;;;2181:1;2164:6;:13;2171:5;2164:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2156:27;;;;;;;;2209:6;:23;337:3;2209:23;;;;;;;;;;;;;;;;;;;;;;;;;2193:6;:13;2200:5;2193:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2268:5;2242:6;:23;337:3;2242:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2283:10;;:12;;;;;;;;;;;;;2376:10;2363:23;;:9;;;;;;;;;;;:23;;;;2359:68;;;2400:27;2416:10;2400:15;:27::i;:::-;2359:68;1906:528;;:::o;3683:526::-;244:4:13;222:27;;:10;:27;;;214:36;;;;;;;;3866:1:9;3854:8;:13;;;;:44;;;;;337:3;3871:27;;:8;:27;;;;3854:44;3846:53;;;;;;;;3977:1;3957:6;:16;3964:8;3957:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;3949:30;;;;;;;;4080:8;4059:29;;:6;:17;4066:9;4059:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4051:38;;;;;;;;4118:6;:16;4125:8;4118:16;;;;;;;;;;;;;;;;;;;;;;;;;4099:6;:16;4106:8;4099:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4164:8;4144:6;:17;4151:9;4144:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4201:1;4182:6;:16;4189:8;4182:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;3683:526;;;:::o;4722:113::-;4791:5;4819:9;;;;;;;;;;;4812:16;;4722:113;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./SelfAuthorized.sol\";\n\n/// @title OwnerManager - Manages a set of owners and a threshold to perform actions.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract OwnerManager is SelfAuthorized {\n\n address public constant SENTINEL_OWNERS = address(0x1);\n\n mapping(address => address) internal owners;\n uint256 ownerCount;\n uint8 internal threshold;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _owners List of Safe owners.\n /// @param _threshold Number of required confirmations for a Safe transaction.\n function setupOwners(address[] _owners, uint8 _threshold)\n internal\n {\n // Threshold can only be 0 at initialization.\n // Check ensures that setup function can only be called once.\n require(threshold == 0);\n // Validate that threshold is smaller than number of added owners.\n require(_threshold <= _owners.length);\n // There has to be at least one Safe owner.\n require(_threshold >= 1);\n // Initializing Safe owners.\n address currentOwner = SENTINEL_OWNERS;\n for (uint256 i = 0; i < _owners.length; i++) {\n // Owner address cannot be null.\n address owner = _owners[i];\n require(owner != 0 && owner != SENTINEL_OWNERS);\n // No duplicate owners allowed.\n require(owners[owner] == 0);\n owners[currentOwner] = owner;\n currentOwner = owner;\n }\n owners[currentOwner] = SENTINEL_OWNERS;\n ownerCount = _owners.length;\n threshold = _threshold;\n }\n\n /// @dev Allows to add a new owner to the Safe and update the threshold at the same time.\n /// This can only be done via a Safe transaction.\n /// @param owner New owner address.\n /// @param _threshold New threshold.\n function addOwnerWithThreshold(address owner, uint8 _threshold)\n public\n authorized\n {\n // Owner address cannot be null.\n require(owner != 0 && owner != SENTINEL_OWNERS);\n // No duplicate owners allowed.\n require(owners[owner] == 0);\n owners[owner] = owners[SENTINEL_OWNERS];\n owners[SENTINEL_OWNERS] = owner;\n ownerCount++;\n // Change threshold if threshold was changed.\n if (threshold != _threshold)\n changeThreshold(_threshold);\n }\n\n /// @dev Allows to remove an owner from the Safe and update the threshold at the same time.\n /// This can only be done via a Safe transaction.\n /// @param prevOwner Owner that pointed to the owner to be removed in the linked list\n /// @param owner Owner address to be removed.\n /// @param _threshold New threshold.\n function removeOwner(address prevOwner, address owner, uint8 _threshold)\n public\n authorized\n {\n // Only allow to remove an owner, if threshold can still be reached.\n require(ownerCount - 1 >= _threshold);\n // Validate owner address corresponds to owner index.\n require(owners[prevOwner] == owner);\n owners[prevOwner] = owners[owner];\n owners[owner] = 0;\n ownerCount--;\n // Change threshold if threshold was changed.\n if (threshold != _threshold)\n changeThreshold(_threshold);\n }\n\n /// @dev Allows to swap/replace an owner from the Safe with another address.\n /// This can only be done via a Safe transaction.\n /// @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n /// @param oldOwner Owner address to be replaced.\n /// @param newOwner New owner address.\n function swapOwner(address prevOwner, address oldOwner, address newOwner)\n public\n authorized\n {\n // Owner address cannot be null.\n require(newOwner != 0 && newOwner != SENTINEL_OWNERS);\n // No duplicate owners allowed.\n require(owners[newOwner] == 0);\n // Validate owner address corresponds to owner index.\n require(owners[prevOwner] == oldOwner);\n owners[newOwner] = owners[oldOwner];\n owners[prevOwner] = newOwner;\n owners[oldOwner] = 0;\n }\n\n /// @dev Allows to update the number of required confirmations by Safe owners.\n /// This can only be done via a Safe transaction.\n /// @param _threshold New threshold.\n function changeThreshold(uint8 _threshold)\n public\n authorized\n {\n // Validate that threshold is smaller than number of owners.\n require(_threshold <= ownerCount);\n // There has to be at least one Safe owner.\n require(_threshold >= 1);\n threshold = _threshold;\n }\n\n function getThreshold()\n public\n view\n returns (uint8)\n {\n return threshold;\n }\n\n function isOwner(address owner)\n public\n view\n returns (bool)\n {\n return owners[owner] != 0;\n }\n\n /// @dev Returns array of owners.\n /// @return Array of Safe owners.\n function getOwners()\n public\n view\n returns (address[])\n {\n address[] memory array = new address[](ownerCount);\n\n // populate return array\n uint256 index = 0;\n address currentOwner = owners[SENTINEL_OWNERS];\n while(currentOwner != SENTINEL_OWNERS) {\n array[index] = currentOwner;\n currentOwner = owners[currentOwner];\n index ++;\n }\n return array;\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "exportedSymbols": { "OwnerManager": [ - 1343 + 1472 ] }, - "id": 1344, + "id": 1473, "nodeType": "SourceUnit", "nodes": [ { - "id": 973, + "id": 1102, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:7" + "src": "0:23:9" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", "file": "./SelfAuthorized.sol", - "id": 974, + "id": 1103, "nodeType": "ImportDirective", - "scope": 1344, - "sourceUnit": 1360, - "src": "24:30:7", + "scope": 1473, + "sourceUnit": 1620, + "src": "24:30:9", "symbolAliases": [], "unitAlias": "" }, @@ -182,42 +182,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 975, + "id": 1104, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1359, - "src": "265:14:7", + "referencedDeclaration": 1619, + "src": "265:14:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1359", + "typeIdentifier": "t_contract$_SelfAuthorized_$1619", "typeString": "contract SelfAuthorized" } }, - "id": 976, + "id": 1105, "nodeType": "InheritanceSpecifier", - "src": "265:14:7" + "src": "265:14:9" } ], "contractDependencies": [ - 1359 + 1619 ], "contractKind": "contract", "documentation": "@title OwnerManager - Manages a set of owners and a threshold to perform actions.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1343, + "id": 1472, "linearizedBaseContracts": [ - 1343, - 1359 + 1472, + 1619 ], "name": "OwnerManager", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 981, + "id": 1110, "name": "SENTINEL_OWNERS", "nodeType": "VariableDeclaration", - "scope": 1343, - "src": "287:54:7", + "scope": 1472, + "src": "287:54:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -225,10 +225,10 @@ "typeString": "address" }, "typeName": { - "id": 977, + "id": 1106, "name": "address", "nodeType": "ElementaryTypeName", - "src": "287:7:7", + "src": "287:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -240,14 +240,14 @@ { "argumentTypes": null, "hexValue": "307831", - "id": 979, + "id": 1108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "337:3:7", + "src": "337:3:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -263,20 +263,20 @@ "typeString": "int_const 1" } ], - "id": 978, + "id": 1107, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "329:7:7", + "src": "329:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 980, + "id": 1109, "isConstant": false, "isLValue": false, "isPure": true, @@ -284,7 +284,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "329:12:7", + "src": "329:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -294,11 +294,11 @@ }, { "constant": false, - "id": 985, + "id": 1114, "name": "owners", "nodeType": "VariableDeclaration", - "scope": 1343, - "src": "348:43:7", + "scope": 1472, + "src": "348:43:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -306,28 +306,28 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 984, + "id": 1113, "keyType": { - "id": 982, + "id": 1111, "name": "address", "nodeType": "ElementaryTypeName", - "src": "356:7:7", + "src": "356:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "348:27:7", + "src": "348:27:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" }, "valueType": { - "id": 983, + "id": 1112, "name": "address", "nodeType": "ElementaryTypeName", - "src": "367:7:7", + "src": "367:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -339,11 +339,11 @@ }, { "constant": false, - "id": 987, + "id": 1116, "name": "ownerCount", "nodeType": "VariableDeclaration", - "scope": 1343, - "src": "397:18:7", + "scope": 1472, + "src": "397:18:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -351,10 +351,10 @@ "typeString": "uint256" }, "typeName": { - "id": 986, + "id": 1115, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "397:7:7", + "src": "397:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -365,11 +365,11 @@ }, { "constant": false, - "id": 989, + "id": 1118, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 1343, - "src": "421:24:7", + "scope": 1472, + "src": "421:24:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -377,10 +377,10 @@ "typeString": "uint8" }, "typeName": { - "id": 988, + "id": 1117, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "421:5:7", + "src": "421:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -391,9 +391,9 @@ }, { "body": { - "id": 1082, + "id": 1211, "nodeType": "Block", - "src": "720:946:7", + "src": "720:946:9", "statements": [ { "expression": { @@ -405,19 +405,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1000, + "id": 1129, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 998, + "id": 1127, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "862:9:7", + "referencedDeclaration": 1118, + "src": "862:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -428,14 +428,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 999, + "id": 1128, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "875:1:7", + "src": "875:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -443,7 +443,7 @@ }, "value": "0" }, - "src": "862:14:7", + "src": "862:14:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -457,21 +457,21 @@ "typeString": "bool" } ], - "id": 997, + "id": 1126, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "854:7:7", + "referencedDeclaration": 2601, + "src": "854:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1001, + "id": 1130, "isConstant": false, "isLValue": false, "isPure": false, @@ -479,15 +479,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "854:23:7", + "src": "854:23:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1002, + "id": 1131, "nodeType": "ExpressionStatement", - "src": "854:23:7" + "src": "854:23:9" }, { "expression": { @@ -499,19 +499,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1007, + "id": 1136, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1004, + "id": 1133, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "970:10:7", + "referencedDeclaration": 1123, + "src": "970:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -523,18 +523,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1005, + "id": 1134, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "984:7:7", + "referencedDeclaration": 1121, + "src": "984:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1006, + "id": 1135, "isConstant": false, "isLValue": false, "isPure": false, @@ -542,13 +542,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "984:14:7", + "src": "984:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "970:28:7", + "src": "970:28:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -562,21 +562,21 @@ "typeString": "bool" } ], - "id": 1003, + "id": 1132, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "962:7:7", + "referencedDeclaration": 2601, + "src": "962:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1008, + "id": 1137, "isConstant": false, "isLValue": false, "isPure": false, @@ -584,15 +584,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "962:37:7", + "src": "962:37:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1009, + "id": 1138, "nodeType": "ExpressionStatement", - "src": "962:37:7" + "src": "962:37:9" }, { "expression": { @@ -604,19 +604,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1013, + "id": 1142, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1011, + "id": 1140, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "1069:10:7", + "referencedDeclaration": 1123, + "src": "1069:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -627,14 +627,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1012, + "id": 1141, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1083:1:7", + "src": "1083:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -642,7 +642,7 @@ }, "value": "1" }, - "src": "1069:15:7", + "src": "1069:15:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -656,21 +656,21 @@ "typeString": "bool" } ], - "id": 1010, + "id": 1139, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1061:7:7", + "referencedDeclaration": 2601, + "src": "1061:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1014, + "id": 1143, "isConstant": false, "isLValue": false, "isPure": false, @@ -678,28 +678,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1061:24:7", + "src": "1061:24:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1015, + "id": 1144, "nodeType": "ExpressionStatement", - "src": "1061:24:7" + "src": "1061:24:9" }, { "assignments": [ - 1017 + 1146 ], "declarations": [ { "constant": false, - "id": 1017, + "id": 1146, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1083, - "src": "1132:20:7", + "scope": 1212, + "src": "1132:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -707,10 +707,10 @@ "typeString": "address" }, "typeName": { - "id": 1016, + "id": 1145, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1132:7:7", + "src": "1132:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -720,41 +720,41 @@ "visibility": "internal" } ], - "id": 1019, + "id": 1148, "initialValue": { "argumentTypes": null, - "id": 1018, + "id": 1147, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "1155:15:7", + "referencedDeclaration": 1110, + "src": "1155:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1132:38:7" + "src": "1132:38:9" }, { "body": { - "id": 1065, + "id": 1194, "nodeType": "Block", - "src": "1225:318:7", + "src": "1225:318:9", "statements": [ { "assignments": [ - 1032 + 1161 ], "declarations": [ { "constant": false, - "id": 1032, + "id": 1161, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1083, - "src": "1284:13:7", + "scope": 1212, + "src": "1284:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -762,10 +762,10 @@ "typeString": "address" }, "typeName": { - "id": 1031, + "id": 1160, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1284:7:7", + "src": "1284:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -775,31 +775,31 @@ "visibility": "internal" } ], - "id": 1036, + "id": 1165, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1033, + "id": 1162, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "1300:7:7", + "referencedDeclaration": 1121, + "src": "1300:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1035, + "id": 1164, "indexExpression": { "argumentTypes": null, - "id": 1034, + "id": 1163, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1021, - "src": "1308:1:7", + "referencedDeclaration": 1150, + "src": "1308:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -810,14 +810,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1300:10:7", + "src": "1300:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1284:26:7" + "src": "1284:26:9" }, { "expression": { @@ -829,7 +829,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1044, + "id": 1173, "isConstant": false, "isLValue": false, "isPure": false, @@ -840,19 +840,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1040, + "id": 1169, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1038, + "id": 1167, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "1332:5:7", + "referencedDeclaration": 1161, + "src": "1332:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -863,14 +863,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1039, + "id": 1168, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1341:1:7", + "src": "1341:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -878,7 +878,7 @@ }, "value": "0" }, - "src": "1332:10:7", + "src": "1332:10:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -892,19 +892,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1043, + "id": 1172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1041, + "id": 1170, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "1346:5:7", + "referencedDeclaration": 1161, + "src": "1346:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -914,24 +914,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1042, + "id": 1171, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "1355:15:7", + "referencedDeclaration": 1110, + "src": "1355:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1346:24:7", + "src": "1346:24:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1332:38:7", + "src": "1332:38:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -945,21 +945,21 @@ "typeString": "bool" } ], - "id": 1037, + "id": 1166, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1324:7:7", + "referencedDeclaration": 2601, + "src": "1324:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1045, + "id": 1174, "isConstant": false, "isLValue": false, "isPure": false, @@ -967,15 +967,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1324:47:7", + "src": "1324:47:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1046, + "id": 1175, "nodeType": "ExpressionStatement", - "src": "1324:47:7" + "src": "1324:47:9" }, { "expression": { @@ -987,7 +987,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1052, + "id": 1181, "isConstant": false, "isLValue": false, "isPure": false, @@ -996,26 +996,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1048, + "id": 1177, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "1437:6:7", + "referencedDeclaration": 1114, + "src": "1437:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1050, + "id": 1179, "indexExpression": { "argumentTypes": null, - "id": 1049, + "id": 1178, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "1444:5:7", + "referencedDeclaration": 1161, + "src": "1444:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1026,7 +1026,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1437:13:7", + "src": "1437:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1037,14 +1037,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1051, + "id": 1180, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1454:1:7", + "src": "1454:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1052,7 +1052,7 @@ }, "value": "0" }, - "src": "1437:18:7", + "src": "1437:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1066,21 +1066,21 @@ "typeString": "bool" } ], - "id": 1047, + "id": 1176, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1429:7:7", + "referencedDeclaration": 2601, + "src": "1429:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1053, + "id": 1182, "isConstant": false, "isLValue": false, "isPure": false, @@ -1088,20 +1088,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1429:27:7", + "src": "1429:27:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1054, + "id": 1183, "nodeType": "ExpressionStatement", - "src": "1429:27:7" + "src": "1429:27:9" }, { "expression": { "argumentTypes": null, - "id": 1059, + "id": 1188, "isConstant": false, "isLValue": false, "isPure": false, @@ -1110,26 +1110,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1055, + "id": 1184, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "1470:6:7", + "referencedDeclaration": 1114, + "src": "1470:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1057, + "id": 1186, "indexExpression": { "argumentTypes": null, - "id": 1056, + "id": 1185, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1017, - "src": "1477:12:7", + "referencedDeclaration": 1146, + "src": "1477:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1140,7 +1140,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1470:20:7", + "src": "1470:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1150,43 +1150,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1058, + "id": 1187, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "1493:5:7", + "referencedDeclaration": 1161, + "src": "1493:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1470:28:7", + "src": "1470:28:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1060, + "id": 1189, "nodeType": "ExpressionStatement", - "src": "1470:28:7" + "src": "1470:28:9" }, { "expression": { "argumentTypes": null, - "id": 1063, + "id": 1192, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1061, + "id": 1190, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1017, - "src": "1512:12:7", + "referencedDeclaration": 1146, + "src": "1512:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1196,26 +1196,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1062, + "id": 1191, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "1527:5:7", + "referencedDeclaration": 1161, + "src": "1527:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1512:20:7", + "src": "1512:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1064, + "id": 1193, "nodeType": "ExpressionStatement", - "src": "1512:20:7" + "src": "1512:20:9" } ] }, @@ -1225,19 +1225,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1027, + "id": 1156, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1024, + "id": 1153, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1021, - "src": "1200:1:7", + "referencedDeclaration": 1150, + "src": "1200:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1249,18 +1249,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1025, + "id": 1154, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "1204:7:7", + "referencedDeclaration": 1121, + "src": "1204:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1026, + "id": 1155, "isConstant": false, "isLValue": false, "isPure": false, @@ -1268,31 +1268,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1204:14:7", + "src": "1204:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1200:18:7", + "src": "1200:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1066, + "id": 1195, "initializationExpression": { "assignments": [ - 1021 + 1150 ], "declarations": [ { "constant": false, - "id": 1021, + "id": 1150, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1083, - "src": "1185:9:7", + "scope": 1212, + "src": "1185:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1300,10 +1300,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1020, + "id": 1149, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1185:7:7", + "src": "1185:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1313,18 +1313,18 @@ "visibility": "internal" } ], - "id": 1023, + "id": 1152, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1022, + "id": 1151, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1197:1:7", + "src": "1197:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1333,12 +1333,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1185:13:7" + "src": "1185:13:9" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1029, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": false, @@ -1346,15 +1346,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1220:3:7", + "src": "1220:3:9", "subExpression": { "argumentTypes": null, - "id": 1028, + "id": 1157, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1021, - "src": "1220:1:7", + "referencedDeclaration": 1150, + "src": "1220:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1365,17 +1365,17 @@ "typeString": "uint256" } }, - "id": 1030, + "id": 1159, "nodeType": "ExpressionStatement", - "src": "1220:3:7" + "src": "1220:3:9" }, "nodeType": "ForStatement", - "src": "1180:363:7" + "src": "1180:363:9" }, { "expression": { "argumentTypes": null, - "id": 1071, + "id": 1200, "isConstant": false, "isLValue": false, "isPure": false, @@ -1384,26 +1384,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1067, + "id": 1196, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "1552:6:7", + "referencedDeclaration": 1114, + "src": "1552:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1069, + "id": 1198, "indexExpression": { "argumentTypes": null, - "id": 1068, + "id": 1197, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1017, - "src": "1559:12:7", + "referencedDeclaration": 1146, + "src": "1559:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1414,7 +1414,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1552:20:7", + "src": "1552:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1424,43 +1424,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1070, + "id": 1199, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "1575:15:7", + "referencedDeclaration": 1110, + "src": "1575:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1552:38:7", + "src": "1552:38:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1072, + "id": 1201, "nodeType": "ExpressionStatement", - "src": "1552:38:7" + "src": "1552:38:9" }, { "expression": { "argumentTypes": null, - "id": 1076, + "id": 1205, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1073, + "id": 1202, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "1600:10:7", + "referencedDeclaration": 1116, + "src": "1600:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1472,18 +1472,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1074, + "id": 1203, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "1613:7:7", + "referencedDeclaration": 1121, + "src": "1613:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1075, + "id": 1204, "isConstant": false, "isLValue": false, "isPure": false, @@ -1491,38 +1491,38 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1613:14:7", + "src": "1613:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1600:27:7", + "src": "1600:27:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1077, + "id": 1206, "nodeType": "ExpressionStatement", - "src": "1600:27:7" + "src": "1600:27:9" }, { "expression": { "argumentTypes": null, - "id": 1080, + "id": 1209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1078, + "id": 1207, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "1637:9:7", + "referencedDeclaration": 1118, + "src": "1637:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1532,31 +1532,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1079, + "id": 1208, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "1649:10:7", + "referencedDeclaration": 1123, + "src": "1649:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "1637:22:7", + "src": "1637:22:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1081, + "id": 1210, "nodeType": "ExpressionStatement", - "src": "1637:22:7" + "src": "1637:22:9" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.", - "id": 1083, + "id": 1212, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1564,16 +1564,16 @@ "name": "setupOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 995, + "id": 1124, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 992, + "id": 1121, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 1083, - "src": "662:17:7", + "scope": 1212, + "src": "662:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1582,19 +1582,19 @@ }, "typeName": { "baseType": { - "id": 990, + "id": 1119, "name": "address", "nodeType": "ElementaryTypeName", - "src": "662:7:7", + "src": "662:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 991, + "id": 1120, "length": null, "nodeType": "ArrayTypeName", - "src": "662:9:7", + "src": "662:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1605,11 +1605,11 @@ }, { "constant": false, - "id": 994, + "id": 1123, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1083, - "src": "681:16:7", + "scope": 1212, + "src": "681:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1617,10 +1617,10 @@ "typeString": "uint8" }, "typeName": { - "id": 993, + "id": 1122, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "681:5:7", + "src": "681:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1630,26 +1630,26 @@ "visibility": "internal" } ], - "src": "661:37:7" + "src": "661:37:9" }, "payable": false, "returnParameters": { - "id": 996, + "id": 1125, "nodeType": "ParameterList", "parameters": [], - "src": "720:0:7" + "src": "720:0:9" }, - "scope": 1343, - "src": "641:1025:7", + "scope": 1472, + "src": "641:1025:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1135, + "id": 1264, "nodeType": "Block", - "src": "2008:426:7", + "src": "2008:426:9", "statements": [ { "expression": { @@ -1661,7 +1661,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1099, + "id": 1228, "isConstant": false, "isLValue": false, "isPure": false, @@ -1672,19 +1672,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1095, + "id": 1224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1093, + "id": 1222, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1085, - "src": "2067:5:7", + "referencedDeclaration": 1214, + "src": "2067:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1695,14 +1695,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1094, + "id": 1223, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2076:1:7", + "src": "2076:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1710,7 +1710,7 @@ }, "value": "0" }, - "src": "2067:10:7", + "src": "2067:10:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1724,19 +1724,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1098, + "id": 1227, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1096, + "id": 1225, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1085, - "src": "2081:5:7", + "referencedDeclaration": 1214, + "src": "2081:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1746,24 +1746,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1097, + "id": 1226, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "2090:15:7", + "referencedDeclaration": 1110, + "src": "2090:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2081:24:7", + "src": "2081:24:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2067:38:7", + "src": "2067:38:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1777,21 +1777,21 @@ "typeString": "bool" } ], - "id": 1092, + "id": 1221, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2059:7:7", + "referencedDeclaration": 2601, + "src": "2059:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1100, + "id": 1229, "isConstant": false, "isLValue": false, "isPure": false, @@ -1799,15 +1799,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2059:47:7", + "src": "2059:47:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1101, + "id": 1230, "nodeType": "ExpressionStatement", - "src": "2059:47:7" + "src": "2059:47:9" }, { "expression": { @@ -1819,7 +1819,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1107, + "id": 1236, "isConstant": false, "isLValue": false, "isPure": false, @@ -1828,26 +1828,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1103, + "id": 1232, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "2164:6:7", + "referencedDeclaration": 1114, + "src": "2164:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1105, + "id": 1234, "indexExpression": { "argumentTypes": null, - "id": 1104, + "id": 1233, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1085, - "src": "2171:5:7", + "referencedDeclaration": 1214, + "src": "2171:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1858,7 +1858,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2164:13:7", + "src": "2164:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1869,14 +1869,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1106, + "id": 1235, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2181:1:7", + "src": "2181:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1884,7 +1884,7 @@ }, "value": "0" }, - "src": "2164:18:7", + "src": "2164:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1898,21 +1898,21 @@ "typeString": "bool" } ], - "id": 1102, + "id": 1231, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2156:7:7", + "referencedDeclaration": 2601, + "src": "2156:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1108, + "id": 1237, "isConstant": false, "isLValue": false, "isPure": false, @@ -1920,20 +1920,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2156:27:7", + "src": "2156:27:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1109, + "id": 1238, "nodeType": "ExpressionStatement", - "src": "2156:27:7" + "src": "2156:27:9" }, { "expression": { "argumentTypes": null, - "id": 1116, + "id": 1245, "isConstant": false, "isLValue": false, "isPure": false, @@ -1942,26 +1942,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1110, + "id": 1239, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "2193:6:7", + "referencedDeclaration": 1114, + "src": "2193:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1112, + "id": 1241, "indexExpression": { "argumentTypes": null, - "id": 1111, + "id": 1240, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1085, - "src": "2200:5:7", + "referencedDeclaration": 1214, + "src": "2200:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1972,7 +1972,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2193:13:7", + "src": "2193:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1984,26 +1984,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1113, + "id": 1242, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "2209:6:7", + "referencedDeclaration": 1114, + "src": "2209:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1115, + "id": 1244, "indexExpression": { "argumentTypes": null, - "id": 1114, + "id": 1243, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "2216:15:7", + "referencedDeclaration": 1110, + "src": "2216:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2014,26 +2014,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2209:23:7", + "src": "2209:23:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2193:39:7", + "src": "2193:39:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1117, + "id": 1246, "nodeType": "ExpressionStatement", - "src": "2193:39:7" + "src": "2193:39:9" }, { "expression": { "argumentTypes": null, - "id": 1122, + "id": 1251, "isConstant": false, "isLValue": false, "isPure": false, @@ -2042,26 +2042,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1118, + "id": 1247, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "2242:6:7", + "referencedDeclaration": 1114, + "src": "2242:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1120, + "id": 1249, "indexExpression": { "argumentTypes": null, - "id": 1119, + "id": 1248, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "2249:15:7", + "referencedDeclaration": 1110, + "src": "2249:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2072,7 +2072,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2242:23:7", + "src": "2242:23:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2082,31 +2082,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1121, + "id": 1250, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1085, - "src": "2268:5:7", + "referencedDeclaration": 1214, + "src": "2268:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2242:31:7", + "src": "2242:31:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1123, + "id": 1252, "nodeType": "ExpressionStatement", - "src": "2242:31:7" + "src": "2242:31:9" }, { "expression": { "argumentTypes": null, - "id": 1125, + "id": 1254, "isConstant": false, "isLValue": false, "isPure": false, @@ -2114,15 +2114,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2283:12:7", + "src": "2283:12:9", "subExpression": { "argumentTypes": null, - "id": 1124, + "id": 1253, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "2283:10:7", + "referencedDeclaration": 1116, + "src": "2283:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2133,9 +2133,9 @@ "typeString": "uint256" } }, - "id": 1126, + "id": 1255, "nodeType": "ExpressionStatement", - "src": "2283:12:7" + "src": "2283:12:9" }, { "condition": { @@ -2144,19 +2144,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1129, + "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1127, + "id": 1256, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "2363:9:7", + "referencedDeclaration": 1118, + "src": "2363:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2166,39 +2166,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1128, + "id": 1257, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "2376:10:7", + "referencedDeclaration": 1216, + "src": "2376:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "2363:23:7", + "src": "2363:23:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1134, + "id": 1263, "nodeType": "IfStatement", - "src": "2359:68:7", + "src": "2359:68:9", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1131, + "id": 1260, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "2416:10:7", + "referencedDeclaration": 1216, + "src": "2416:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2212,18 +2212,18 @@ "typeString": "uint8" } ], - "id": 1130, + "id": 1259, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1271, - "src": "2400:15:7", + "referencedDeclaration": 1400, + "src": "2400:15:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1132, + "id": 1261, "isConstant": false, "isLValue": false, "isPure": false, @@ -2231,58 +2231,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2400:27:7", + "src": "2400:27:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1133, + "id": 1262, "nodeType": "ExpressionStatement", - "src": "2400:27:7" + "src": "2400:27:9" } } ] }, "documentation": "@dev Allows to add a new owner to the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param owner New owner address.\n @param _threshold New threshold.", - "id": 1136, + "id": 1265, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1090, + "id": 1219, "modifierName": { "argumentTypes": null, - "id": 1089, + "id": 1218, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "1993:10:7", + "referencedDeclaration": 1618, + "src": "1993:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1993:10:7" + "src": "1993:10:9" } ], "name": "addOwnerWithThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1088, + "id": 1217, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1085, + "id": 1214, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1136, - "src": "1937:13:7", + "scope": 1265, + "src": "1937:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2290,10 +2290,10 @@ "typeString": "address" }, "typeName": { - "id": 1084, + "id": 1213, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1937:7:7", + "src": "1937:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2304,11 +2304,11 @@ }, { "constant": false, - "id": 1087, + "id": 1216, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1136, - "src": "1952:16:7", + "scope": 1265, + "src": "1952:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2316,10 +2316,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1086, + "id": 1215, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1952:5:7", + "src": "1952:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2329,26 +2329,26 @@ "visibility": "internal" } ], - "src": "1936:33:7" + "src": "1936:33:9" }, "payable": false, "returnParameters": { - "id": 1091, + "id": 1220, "nodeType": "ParameterList", "parameters": [], - "src": "2008:0:7" + "src": "2008:0:9" }, - "scope": 1343, - "src": "1906:528:7", + "scope": 1472, + "src": "1906:528:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1188, + "id": 1317, "nodeType": "Block", - "src": "2887:462:7", + "src": "2887:462:9", "statements": [ { "expression": { @@ -2360,7 +2360,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1152, + "id": 1281, "isConstant": false, "isLValue": false, "isPure": false, @@ -2371,19 +2371,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1150, + "id": 1279, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1148, + "id": 1277, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "2982:10:7", + "referencedDeclaration": 1116, + "src": "2982:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2394,14 +2394,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1149, + "id": 1278, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2995:1:7", + "src": "2995:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -2409,7 +2409,7 @@ }, "value": "1" }, - "src": "2982:14:7", + "src": "2982:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2419,18 +2419,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 1151, + "id": 1280, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1142, - "src": "3000:10:7", + "referencedDeclaration": 1271, + "src": "3000:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "2982:28:7", + "src": "2982:28:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2444,21 +2444,21 @@ "typeString": "bool" } ], - "id": 1147, + "id": 1276, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2974:7:7", + "referencedDeclaration": 2601, + "src": "2974:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1153, + "id": 1282, "isConstant": false, "isLValue": false, "isPure": false, @@ -2466,15 +2466,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2974:37:7", + "src": "2974:37:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1154, + "id": 1283, "nodeType": "ExpressionStatement", - "src": "2974:37:7" + "src": "2974:37:9" }, { "expression": { @@ -2486,7 +2486,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1160, + "id": 1289, "isConstant": false, "isLValue": false, "isPure": false, @@ -2495,26 +2495,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1156, + "id": 1285, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "3091:6:7", + "referencedDeclaration": 1114, + "src": "3091:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1158, + "id": 1287, "indexExpression": { "argumentTypes": null, - "id": 1157, + "id": 1286, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "3098:9:7", + "referencedDeclaration": 1267, + "src": "3098:9:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2525,7 +2525,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3091:17:7", + "src": "3091:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2535,18 +2535,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1159, + "id": 1288, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1140, - "src": "3112:5:7", + "referencedDeclaration": 1269, + "src": "3112:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3091:26:7", + "src": "3091:26:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2560,21 +2560,21 @@ "typeString": "bool" } ], - "id": 1155, + "id": 1284, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "3083:7:7", + "referencedDeclaration": 2601, + "src": "3083:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1161, + "id": 1290, "isConstant": false, "isLValue": false, "isPure": false, @@ -2582,20 +2582,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3083:35:7", + "src": "3083:35:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1162, + "id": 1291, "nodeType": "ExpressionStatement", - "src": "3083:35:7" + "src": "3083:35:9" }, { "expression": { "argumentTypes": null, - "id": 1169, + "id": 1298, "isConstant": false, "isLValue": false, "isPure": false, @@ -2604,26 +2604,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1163, + "id": 1292, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "3128:6:7", + "referencedDeclaration": 1114, + "src": "3128:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1165, + "id": 1294, "indexExpression": { "argumentTypes": null, - "id": 1164, + "id": 1293, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "3135:9:7", + "referencedDeclaration": 1267, + "src": "3135:9:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2634,7 +2634,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3128:17:7", + "src": "3128:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2646,26 +2646,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1166, + "id": 1295, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "3148:6:7", + "referencedDeclaration": 1114, + "src": "3148:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1168, + "id": 1297, "indexExpression": { "argumentTypes": null, - "id": 1167, + "id": 1296, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1140, - "src": "3155:5:7", + "referencedDeclaration": 1269, + "src": "3155:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2676,26 +2676,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3148:13:7", + "src": "3148:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3128:33:7", + "src": "3128:33:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1170, + "id": 1299, "nodeType": "ExpressionStatement", - "src": "3128:33:7" + "src": "3128:33:9" }, { "expression": { "argumentTypes": null, - "id": 1175, + "id": 1304, "isConstant": false, "isLValue": false, "isPure": false, @@ -2704,26 +2704,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1171, + "id": 1300, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "3171:6:7", + "referencedDeclaration": 1114, + "src": "3171:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1173, + "id": 1302, "indexExpression": { "argumentTypes": null, - "id": 1172, + "id": 1301, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1140, - "src": "3178:5:7", + "referencedDeclaration": 1269, + "src": "3178:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2734,7 +2734,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3171:13:7", + "src": "3171:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2745,14 +2745,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1174, + "id": 1303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3187:1:7", + "src": "3187:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2760,20 +2760,20 @@ }, "value": "0" }, - "src": "3171:17:7", + "src": "3171:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1176, + "id": 1305, "nodeType": "ExpressionStatement", - "src": "3171:17:7" + "src": "3171:17:9" }, { "expression": { "argumentTypes": null, - "id": 1178, + "id": 1307, "isConstant": false, "isLValue": false, "isPure": false, @@ -2781,15 +2781,15 @@ "nodeType": "UnaryOperation", "operator": "--", "prefix": false, - "src": "3198:12:7", + "src": "3198:12:9", "subExpression": { "argumentTypes": null, - "id": 1177, + "id": 1306, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "3198:10:7", + "referencedDeclaration": 1116, + "src": "3198:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2800,9 +2800,9 @@ "typeString": "uint256" } }, - "id": 1179, + "id": 1308, "nodeType": "ExpressionStatement", - "src": "3198:12:7" + "src": "3198:12:9" }, { "condition": { @@ -2811,19 +2811,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1182, + "id": 1311, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1180, + "id": 1309, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "3278:9:7", + "referencedDeclaration": 1118, + "src": "3278:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2833,39 +2833,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1181, + "id": 1310, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1142, - "src": "3291:10:7", + "referencedDeclaration": 1271, + "src": "3291:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "3278:23:7", + "src": "3278:23:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1187, + "id": 1316, "nodeType": "IfStatement", - "src": "3274:68:7", + "src": "3274:68:9", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1184, + "id": 1313, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1142, - "src": "3331:10:7", + "referencedDeclaration": 1271, + "src": "3331:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -2879,18 +2879,18 @@ "typeString": "uint8" } ], - "id": 1183, + "id": 1312, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1271, - "src": "3315:15:7", + "referencedDeclaration": 1400, + "src": "3315:15:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1185, + "id": 1314, "isConstant": false, "isLValue": false, "isPure": false, @@ -2898,58 +2898,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3315:27:7", + "src": "3315:27:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1186, + "id": 1315, "nodeType": "ExpressionStatement", - "src": "3315:27:7" + "src": "3315:27:9" } } ] }, "documentation": "@dev Allows to remove an owner from the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param prevOwner Owner that pointed to the owner to be removed in the linked list\n @param owner Owner address to be removed.\n @param _threshold New threshold.", - "id": 1189, + "id": 1318, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1145, + "id": 1274, "modifierName": { "argumentTypes": null, - "id": 1144, + "id": 1273, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "2872:10:7", + "referencedDeclaration": 1618, + "src": "2872:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2872:10:7" + "src": "2872:10:9" } ], "name": "removeOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1143, + "id": 1272, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1138, + "id": 1267, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1189, - "src": "2797:17:7", + "scope": 1318, + "src": "2797:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2957,10 +2957,10 @@ "typeString": "address" }, "typeName": { - "id": 1137, + "id": 1266, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2797:7:7", + "src": "2797:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2971,11 +2971,11 @@ }, { "constant": false, - "id": 1140, + "id": 1269, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1189, - "src": "2816:13:7", + "scope": 1318, + "src": "2816:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2983,10 +2983,10 @@ "typeString": "address" }, "typeName": { - "id": 1139, + "id": 1268, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2816:7:7", + "src": "2816:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2997,11 +2997,11 @@ }, { "constant": false, - "id": 1142, + "id": 1271, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1189, - "src": "2831:16:7", + "scope": 1318, + "src": "2831:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3009,10 +3009,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1141, + "id": 1270, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2831:5:7", + "src": "2831:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3022,26 +3022,26 @@ "visibility": "internal" } ], - "src": "2796:52:7" + "src": "2796:52:9" }, "payable": false, "returnParameters": { - "id": 1146, + "id": 1275, "nodeType": "ParameterList", "parameters": [], - "src": "2887:0:7" + "src": "2887:0:9" }, - "scope": 1343, - "src": "2776:573:7", + "scope": 1472, + "src": "2776:573:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1246, + "id": 1375, "nodeType": "Block", - "src": "3795:414:7", + "src": "3795:414:9", "statements": [ { "expression": { @@ -3053,7 +3053,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1207, + "id": 1336, "isConstant": false, "isLValue": false, "isPure": false, @@ -3064,19 +3064,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1203, + "id": 1332, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1201, + "id": 1330, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "3854:8:7", + "referencedDeclaration": 1324, + "src": "3854:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3087,14 +3087,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1202, + "id": 1331, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3866:1:7", + "src": "3866:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3102,7 +3102,7 @@ }, "value": "0" }, - "src": "3854:13:7", + "src": "3854:13:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3116,19 +3116,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1206, + "id": 1335, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1204, + "id": 1333, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "3871:8:7", + "referencedDeclaration": 1324, + "src": "3871:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3138,24 +3138,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1205, + "id": 1334, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3883:15:7", + "referencedDeclaration": 1110, + "src": "3883:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3871:27:7", + "src": "3871:27:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3854:44:7", + "src": "3854:44:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3169,21 +3169,21 @@ "typeString": "bool" } ], - "id": 1200, + "id": 1329, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "3846:7:7", + "referencedDeclaration": 2601, + "src": "3846:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1208, + "id": 1337, "isConstant": false, "isLValue": false, "isPure": false, @@ -3191,15 +3191,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3846:53:7", + "src": "3846:53:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1209, + "id": 1338, "nodeType": "ExpressionStatement", - "src": "3846:53:7" + "src": "3846:53:9" }, { "expression": { @@ -3211,7 +3211,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1215, + "id": 1344, "isConstant": false, "isLValue": false, "isPure": false, @@ -3220,26 +3220,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1211, + "id": 1340, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "3957:6:7", + "referencedDeclaration": 1114, + "src": "3957:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1213, + "id": 1342, "indexExpression": { "argumentTypes": null, - "id": 1212, + "id": 1341, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "3964:8:7", + "referencedDeclaration": 1324, + "src": "3964:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3250,7 +3250,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3957:16:7", + "src": "3957:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3261,14 +3261,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1214, + "id": 1343, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3977:1:7", + "src": "3977:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3276,7 +3276,7 @@ }, "value": "0" }, - "src": "3957:21:7", + "src": "3957:21:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3290,21 +3290,21 @@ "typeString": "bool" } ], - "id": 1210, + "id": 1339, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "3949:7:7", + "referencedDeclaration": 2601, + "src": "3949:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1216, + "id": 1345, "isConstant": false, "isLValue": false, "isPure": false, @@ -3312,15 +3312,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3949:30:7", + "src": "3949:30:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1217, + "id": 1346, "nodeType": "ExpressionStatement", - "src": "3949:30:7" + "src": "3949:30:9" }, { "expression": { @@ -3332,7 +3332,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1223, + "id": 1352, "isConstant": false, "isLValue": false, "isPure": false, @@ -3341,26 +3341,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1219, + "id": 1348, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "4059:6:7", + "referencedDeclaration": 1114, + "src": "4059:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1221, + "id": 1350, "indexExpression": { "argumentTypes": null, - "id": 1220, + "id": 1349, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1191, - "src": "4066:9:7", + "referencedDeclaration": 1320, + "src": "4066:9:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3371,7 +3371,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4059:17:7", + "src": "4059:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3381,18 +3381,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1222, + "id": 1351, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1193, - "src": "4080:8:7", + "referencedDeclaration": 1322, + "src": "4080:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4059:29:7", + "src": "4059:29:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3406,21 +3406,21 @@ "typeString": "bool" } ], - "id": 1218, + "id": 1347, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "4051:7:7", + "referencedDeclaration": 2601, + "src": "4051:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1224, + "id": 1353, "isConstant": false, "isLValue": false, "isPure": false, @@ -3428,20 +3428,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4051:38:7", + "src": "4051:38:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1225, + "id": 1354, "nodeType": "ExpressionStatement", - "src": "4051:38:7" + "src": "4051:38:9" }, { "expression": { "argumentTypes": null, - "id": 1232, + "id": 1361, "isConstant": false, "isLValue": false, "isPure": false, @@ -3450,26 +3450,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1226, + "id": 1355, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "4099:6:7", + "referencedDeclaration": 1114, + "src": "4099:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1228, + "id": 1357, "indexExpression": { "argumentTypes": null, - "id": 1227, + "id": 1356, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "4106:8:7", + "referencedDeclaration": 1324, + "src": "4106:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3480,7 +3480,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4099:16:7", + "src": "4099:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3492,26 +3492,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1229, + "id": 1358, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "4118:6:7", + "referencedDeclaration": 1114, + "src": "4118:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1231, + "id": 1360, "indexExpression": { "argumentTypes": null, - "id": 1230, + "id": 1359, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1193, - "src": "4125:8:7", + "referencedDeclaration": 1322, + "src": "4125:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3522,26 +3522,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4118:16:7", + "src": "4118:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4099:35:7", + "src": "4099:35:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1233, + "id": 1362, "nodeType": "ExpressionStatement", - "src": "4099:35:7" + "src": "4099:35:9" }, { "expression": { "argumentTypes": null, - "id": 1238, + "id": 1367, "isConstant": false, "isLValue": false, "isPure": false, @@ -3550,26 +3550,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1234, + "id": 1363, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "4144:6:7", + "referencedDeclaration": 1114, + "src": "4144:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1236, + "id": 1365, "indexExpression": { "argumentTypes": null, - "id": 1235, + "id": 1364, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1191, - "src": "4151:9:7", + "referencedDeclaration": 1320, + "src": "4151:9:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3580,7 +3580,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4144:17:7", + "src": "4144:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3590,31 +3590,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1237, + "id": 1366, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "4164:8:7", + "referencedDeclaration": 1324, + "src": "4164:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4144:28:7", + "src": "4144:28:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1239, + "id": 1368, "nodeType": "ExpressionStatement", - "src": "4144:28:7" + "src": "4144:28:9" }, { "expression": { "argumentTypes": null, - "id": 1244, + "id": 1373, "isConstant": false, "isLValue": false, "isPure": false, @@ -3623,26 +3623,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1240, + "id": 1369, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "4182:6:7", + "referencedDeclaration": 1114, + "src": "4182:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1242, + "id": 1371, "indexExpression": { "argumentTypes": null, - "id": 1241, + "id": 1370, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1193, - "src": "4189:8:7", + "referencedDeclaration": 1322, + "src": "4189:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3653,7 +3653,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4182:16:7", + "src": "4182:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3664,14 +3664,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1243, + "id": 1372, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4201:1:7", + "src": "4201:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3679,57 +3679,57 @@ }, "value": "0" }, - "src": "4182:20:7", + "src": "4182:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1245, + "id": 1374, "nodeType": "ExpressionStatement", - "src": "4182:20:7" + "src": "4182:20:9" } ] }, "documentation": "@dev Allows to swap/replace an owner from the Safe with another address.\n This can only be done via a Safe transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.", - "id": 1247, + "id": 1376, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1198, + "id": 1327, "modifierName": { "argumentTypes": null, - "id": 1197, + "id": 1326, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "3780:10:7", + "referencedDeclaration": 1618, + "src": "3780:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3780:10:7" + "src": "3780:10:9" } ], "name": "swapOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1196, + "id": 1325, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1191, + "id": 1320, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1247, - "src": "3702:17:7", + "scope": 1376, + "src": "3702:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3737,10 +3737,10 @@ "typeString": "address" }, "typeName": { - "id": 1190, + "id": 1319, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3702:7:7", + "src": "3702:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3751,11 +3751,11 @@ }, { "constant": false, - "id": 1193, + "id": 1322, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 1247, - "src": "3721:16:7", + "scope": 1376, + "src": "3721:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3763,10 +3763,10 @@ "typeString": "address" }, "typeName": { - "id": 1192, + "id": 1321, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3721:7:7", + "src": "3721:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3777,11 +3777,11 @@ }, { "constant": false, - "id": 1195, + "id": 1324, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 1247, - "src": "3739:16:7", + "scope": 1376, + "src": "3739:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3789,10 +3789,10 @@ "typeString": "address" }, "typeName": { - "id": 1194, + "id": 1323, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3739:7:7", + "src": "3739:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3802,26 +3802,26 @@ "visibility": "internal" } ], - "src": "3701:55:7" + "src": "3701:55:9" }, "payable": false, "returnParameters": { - "id": 1199, + "id": 1328, "nodeType": "ParameterList", "parameters": [], - "src": "3795:0:7" + "src": "3795:0:9" }, - "scope": 1343, - "src": "3683:526:7", + "scope": 1472, + "src": "3683:526:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1270, + "id": 1399, "nodeType": "Block", - "src": "4479:237:7", + "src": "4479:237:9", "statements": [ { "expression": { @@ -3833,19 +3833,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1257, + "id": 1386, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1255, + "id": 1384, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "4566:10:7", + "referencedDeclaration": 1378, + "src": "4566:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3855,18 +3855,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1256, + "id": 1385, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "4580:10:7", + "referencedDeclaration": 1116, + "src": "4580:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4566:24:7", + "src": "4566:24:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3880,21 +3880,21 @@ "typeString": "bool" } ], - "id": 1254, + "id": 1383, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "4558:7:7", + "referencedDeclaration": 2601, + "src": "4558:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1258, + "id": 1387, "isConstant": false, "isLValue": false, "isPure": false, @@ -3902,15 +3902,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4558:33:7", + "src": "4558:33:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1259, + "id": 1388, "nodeType": "ExpressionStatement", - "src": "4558:33:7" + "src": "4558:33:9" }, { "expression": { @@ -3922,19 +3922,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1263, + "id": 1392, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1261, + "id": 1390, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "4661:10:7", + "referencedDeclaration": 1378, + "src": "4661:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3945,14 +3945,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1262, + "id": 1391, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4675:1:7", + "src": "4675:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3960,7 +3960,7 @@ }, "value": "1" }, - "src": "4661:15:7", + "src": "4661:15:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3974,21 +3974,21 @@ "typeString": "bool" } ], - "id": 1260, + "id": 1389, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "4653:7:7", + "referencedDeclaration": 2601, + "src": "4653:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1264, + "id": 1393, "isConstant": false, "isLValue": false, "isPure": false, @@ -3996,32 +3996,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4653:24:7", + "src": "4653:24:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1265, + "id": 1394, "nodeType": "ExpressionStatement", - "src": "4653:24:7" + "src": "4653:24:9" }, { "expression": { "argumentTypes": null, - "id": 1268, + "id": 1397, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1266, + "id": 1395, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "4687:9:7", + "referencedDeclaration": 1118, + "src": "4687:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4031,68 +4031,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1267, + "id": 1396, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "4699:10:7", + "referencedDeclaration": 1378, + "src": "4699:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4687:22:7", + "src": "4687:22:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1269, + "id": 1398, "nodeType": "ExpressionStatement", - "src": "4687:22:7" + "src": "4687:22:9" } ] }, "documentation": "@dev Allows to update the number of required confirmations by Safe owners.\n This can only be done via a Safe transaction.\n @param _threshold New threshold.", - "id": 1271, + "id": 1400, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1252, + "id": 1381, "modifierName": { "argumentTypes": null, - "id": 1251, + "id": 1380, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "4464:10:7", + "referencedDeclaration": 1618, + "src": "4464:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4464:10:7" + "src": "4464:10:9" } ], "name": "changeThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1250, + "id": 1379, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1249, + "id": 1378, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1271, - "src": "4423:16:7", + "scope": 1400, + "src": "4423:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4100,10 +4100,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1248, + "id": 1377, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4423:5:7", + "src": "4423:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4113,50 +4113,50 @@ "visibility": "internal" } ], - "src": "4422:18:7" + "src": "4422:18:9" }, "payable": false, "returnParameters": { - "id": 1253, + "id": 1382, "nodeType": "ParameterList", "parameters": [], - "src": "4479:0:7" + "src": "4479:0:9" }, - "scope": 1343, - "src": "4398:318:7", + "scope": 1472, + "src": "4398:318:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1278, + "id": 1407, "nodeType": "Block", - "src": "4802:33:7", + "src": "4802:33:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 1276, + "id": 1405, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "4819:9:7", + "referencedDeclaration": 1118, + "src": "4819:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 1275, - "id": 1277, + "functionReturnParameters": 1404, + "id": 1406, "nodeType": "Return", - "src": "4812:16:7" + "src": "4812:16:9" } ] }, "documentation": null, - "id": 1279, + "id": 1408, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4164,23 +4164,23 @@ "name": "getThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1272, + "id": 1401, "nodeType": "ParameterList", "parameters": [], - "src": "4743:2:7" + "src": "4743:2:9" }, "payable": false, "returnParameters": { - "id": 1275, + "id": 1404, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1274, + "id": 1403, "name": "", "nodeType": "VariableDeclaration", - "scope": 1279, - "src": "4791:5:7", + "scope": 1408, + "src": "4791:5:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4188,10 +4188,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1273, + "id": 1402, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4791:5:7", + "src": "4791:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4201,19 +4201,19 @@ "visibility": "internal" } ], - "src": "4790:7:7" + "src": "4790:7:9" }, - "scope": 1343, - "src": "4722:113:7", + "scope": 1472, + "src": "4722:113:9", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1292, + "id": 1421, "nodeType": "Block", - "src": "4928:42:7", + "src": "4928:42:9", "statements": [ { "expression": { @@ -4222,7 +4222,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1290, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, @@ -4231,26 +4231,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1286, + "id": 1415, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "4945:6:7", + "referencedDeclaration": 1114, + "src": "4945:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1288, + "id": 1417, "indexExpression": { "argumentTypes": null, - "id": 1287, + "id": 1416, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1281, - "src": "4952:5:7", + "referencedDeclaration": 1410, + "src": "4952:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4261,7 +4261,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4945:13:7", + "src": "4945:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4272,14 +4272,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1289, + "id": 1418, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4962:1:7", + "src": "4962:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4287,21 +4287,21 @@ }, "value": "0" }, - "src": "4945:18:7", + "src": "4945:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1285, - "id": 1291, + "functionReturnParameters": 1414, + "id": 1420, "nodeType": "Return", - "src": "4938:25:7" + "src": "4938:25:9" } ] }, "documentation": null, - "id": 1293, + "id": 1422, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4309,16 +4309,16 @@ "name": "isOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1282, + "id": 1411, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1281, + "id": 1410, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1293, - "src": "4858:13:7", + "scope": 1422, + "src": "4858:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4326,10 +4326,10 @@ "typeString": "address" }, "typeName": { - "id": 1280, + "id": 1409, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4858:7:7", + "src": "4858:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4339,20 +4339,20 @@ "visibility": "internal" } ], - "src": "4857:15:7" + "src": "4857:15:9" }, "payable": false, "returnParameters": { - "id": 1285, + "id": 1414, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1284, + "id": 1413, "name": "", "nodeType": "VariableDeclaration", - "scope": 1293, - "src": "4918:4:7", + "scope": 1422, + "src": "4918:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4360,10 +4360,10 @@ "typeString": "bool" }, "typeName": { - "id": 1283, + "id": 1412, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4918:4:7", + "src": "4918:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4373,32 +4373,32 @@ "visibility": "internal" } ], - "src": "4917:6:7" + "src": "4917:6:9" }, - "scope": 1343, - "src": "4841:129:7", + "scope": 1472, + "src": "4841:129:9", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1341, + "id": 1470, "nodeType": "Block", - "src": "5133:377:7", + "src": "5133:377:9", "statements": [ { "assignments": [ - 1302 + 1431 ], "declarations": [ { "constant": false, - "id": 1302, + "id": 1431, "name": "array", "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "5143:22:7", + "scope": 1471, + "src": "5143:22:9", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4407,19 +4407,19 @@ }, "typeName": { "baseType": { - "id": 1300, + "id": 1429, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5143:7:7", + "src": "5143:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1301, + "id": 1430, "length": null, "nodeType": "ArrayTypeName", - "src": "5143:9:7", + "src": "5143:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -4429,18 +4429,18 @@ "visibility": "internal" } ], - "id": 1308, + "id": 1437, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1306, + "id": 1435, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5182:10:7", + "referencedDeclaration": 1116, + "src": "5182:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4454,39 +4454,39 @@ "typeString": "uint256" } ], - "id": 1305, + "id": 1434, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "5168:13:7", + "src": "5168:13:9", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { - "id": 1303, + "id": 1432, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5172:7:7", + "src": "5172:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1304, + "id": 1433, "length": null, "nodeType": "ArrayTypeName", - "src": "5172:9:7", + "src": "5172:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 1307, + "id": 1436, "isConstant": false, "isLValue": false, "isPure": false, @@ -4494,27 +4494,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5168:25:7", + "src": "5168:25:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5143:50:7" + "src": "5143:50:9" }, { "assignments": [ - 1310 + 1439 ], "declarations": [ { "constant": false, - "id": 1310, + "id": 1439, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "5237:13:7", + "scope": 1471, + "src": "5237:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4522,10 +4522,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1309, + "id": 1438, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5237:7:7", + "src": "5237:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4535,18 +4535,18 @@ "visibility": "internal" } ], - "id": 1312, + "id": 1441, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1311, + "id": 1440, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5253:1:7", + "src": "5253:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4555,20 +4555,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "5237:17:7" + "src": "5237:17:9" }, { "assignments": [ - 1314 + 1443 ], "declarations": [ { "constant": false, - "id": 1314, + "id": 1443, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "5264:20:7", + "scope": 1471, + "src": "5264:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4576,10 +4576,10 @@ "typeString": "address" }, "typeName": { - "id": 1313, + "id": 1442, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5264:7:7", + "src": "5264:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4589,31 +4589,31 @@ "visibility": "internal" } ], - "id": 1318, + "id": 1447, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1315, + "id": 1444, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "5287:6:7", + "referencedDeclaration": 1114, + "src": "5287:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1317, + "id": 1446, "indexExpression": { "argumentTypes": null, - "id": 1316, + "id": 1445, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "5294:15:7", + "referencedDeclaration": 1110, + "src": "5294:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4624,25 +4624,25 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5287:23:7", + "src": "5287:23:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "5264:46:7" + "src": "5264:46:9" }, { "body": { - "id": 1337, + "id": 1466, "nodeType": "Block", - "src": "5359:123:7", + "src": "5359:123:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 1326, + "id": 1455, "isConstant": false, "isLValue": false, "isPure": false, @@ -4651,26 +4651,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1322, + "id": 1451, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1302, - "src": "5373:5:7", + "referencedDeclaration": 1431, + "src": "5373:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1324, + "id": 1453, "indexExpression": { "argumentTypes": null, - "id": 1323, + "id": 1452, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "5379:5:7", + "referencedDeclaration": 1439, + "src": "5379:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4681,7 +4681,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5373:12:7", + "src": "5373:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4691,43 +4691,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1325, + "id": 1454, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5388:12:7", + "referencedDeclaration": 1443, + "src": "5388:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5373:27:7", + "src": "5373:27:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1327, + "id": 1456, "nodeType": "ExpressionStatement", - "src": "5373:27:7" + "src": "5373:27:9" }, { "expression": { "argumentTypes": null, - "id": 1332, + "id": 1461, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1328, + "id": 1457, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5414:12:7", + "referencedDeclaration": 1443, + "src": "5414:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4739,26 +4739,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1329, + "id": 1458, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "5429:6:7", + "referencedDeclaration": 1114, + "src": "5429:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1331, + "id": 1460, "indexExpression": { "argumentTypes": null, - "id": 1330, + "id": 1459, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5436:12:7", + "referencedDeclaration": 1443, + "src": "5436:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4769,26 +4769,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5429:20:7", + "src": "5429:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5414:35:7", + "src": "5414:35:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1333, + "id": 1462, "nodeType": "ExpressionStatement", - "src": "5414:35:7" + "src": "5414:35:9" }, { "expression": { "argumentTypes": null, - "id": 1335, + "id": 1464, "isConstant": false, "isLValue": false, "isPure": false, @@ -4796,15 +4796,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5463:8:7", + "src": "5463:8:9", "subExpression": { "argumentTypes": null, - "id": 1334, + "id": 1463, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "5463:5:7", + "referencedDeclaration": 1439, + "src": "5463:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4815,9 +4815,9 @@ "typeString": "uint256" } }, - "id": 1336, + "id": 1465, "nodeType": "ExpressionStatement", - "src": "5463:8:7" + "src": "5463:8:9" } ] }, @@ -4827,19 +4827,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1321, + "id": 1450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1319, + "id": 1448, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5326:12:7", + "referencedDeclaration": 1443, + "src": "5326:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4849,50 +4849,50 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1320, + "id": 1449, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "5342:15:7", + "referencedDeclaration": 1110, + "src": "5342:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5326:31:7", + "src": "5326:31:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1338, + "id": 1467, "nodeType": "WhileStatement", - "src": "5320:162:7" + "src": "5320:162:9" }, { "expression": { "argumentTypes": null, - "id": 1339, + "id": 1468, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1302, - "src": "5498:5:7", + "referencedDeclaration": 1431, + "src": "5498:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 1298, - "id": 1340, + "functionReturnParameters": 1427, + "id": 1469, "nodeType": "Return", - "src": "5491:12:7" + "src": "5491:12:9" } ] }, "documentation": "@dev Returns array of owners.\n @return Array of Safe owners.", - "id": 1342, + "id": 1471, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4900,23 +4900,23 @@ "name": "getOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 1294, + "id": 1423, "nodeType": "ParameterList", "parameters": [], - "src": "5070:2:7" + "src": "5070:2:9" }, "payable": false, "returnParameters": { - "id": 1298, + "id": 1427, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1297, + "id": 1426, "name": "", "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "5118:9:7", + "scope": 1471, + "src": "5118:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4925,19 +4925,19 @@ }, "typeName": { "baseType": { - "id": 1295, + "id": 1424, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5118:7:7", + "src": "5118:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1296, + "id": 1425, "length": null, "nodeType": "ArrayTypeName", - "src": "5118:9:7", + "src": "5118:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -4947,49 +4947,49 @@ "visibility": "internal" } ], - "src": "5117:11:7" + "src": "5117:11:9" }, - "scope": 1343, - "src": "5052:458:7", + "scope": 1472, + "src": "5052:458:9", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1344, - "src": "240:5272:7" + "scope": 1473, + "src": "240:5272:9" } ], - "src": "0:5513:7" + "src": "0:5513:9" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "exportedSymbols": { "OwnerManager": [ - 1343 + 1472 ] }, - "id": 1344, + "id": 1473, "nodeType": "SourceUnit", "nodes": [ { - "id": 973, + "id": 1102, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:7" + "src": "0:23:9" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", "file": "./SelfAuthorized.sol", - "id": 974, + "id": 1103, "nodeType": "ImportDirective", - "scope": 1344, - "sourceUnit": 1360, - "src": "24:30:7", + "scope": 1473, + "sourceUnit": 1620, + "src": "24:30:9", "symbolAliases": [], "unitAlias": "" }, @@ -4999,42 +4999,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 975, + "id": 1104, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1359, - "src": "265:14:7", + "referencedDeclaration": 1619, + "src": "265:14:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1359", + "typeIdentifier": "t_contract$_SelfAuthorized_$1619", "typeString": "contract SelfAuthorized" } }, - "id": 976, + "id": 1105, "nodeType": "InheritanceSpecifier", - "src": "265:14:7" + "src": "265:14:9" } ], "contractDependencies": [ - 1359 + 1619 ], "contractKind": "contract", "documentation": "@title OwnerManager - Manages a set of owners and a threshold to perform actions.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1343, + "id": 1472, "linearizedBaseContracts": [ - 1343, - 1359 + 1472, + 1619 ], "name": "OwnerManager", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 981, + "id": 1110, "name": "SENTINEL_OWNERS", "nodeType": "VariableDeclaration", - "scope": 1343, - "src": "287:54:7", + "scope": 1472, + "src": "287:54:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5042,10 +5042,10 @@ "typeString": "address" }, "typeName": { - "id": 977, + "id": 1106, "name": "address", "nodeType": "ElementaryTypeName", - "src": "287:7:7", + "src": "287:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5057,14 +5057,14 @@ { "argumentTypes": null, "hexValue": "307831", - "id": 979, + "id": 1108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "337:3:7", + "src": "337:3:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5080,20 +5080,20 @@ "typeString": "int_const 1" } ], - "id": 978, + "id": 1107, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "329:7:7", + "src": "329:7:9", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 980, + "id": 1109, "isConstant": false, "isLValue": false, "isPure": true, @@ -5101,7 +5101,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "329:12:7", + "src": "329:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5111,11 +5111,11 @@ }, { "constant": false, - "id": 985, + "id": 1114, "name": "owners", "nodeType": "VariableDeclaration", - "scope": 1343, - "src": "348:43:7", + "scope": 1472, + "src": "348:43:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5123,28 +5123,28 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 984, + "id": 1113, "keyType": { - "id": 982, + "id": 1111, "name": "address", "nodeType": "ElementaryTypeName", - "src": "356:7:7", + "src": "356:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "348:27:7", + "src": "348:27:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" }, "valueType": { - "id": 983, + "id": 1112, "name": "address", "nodeType": "ElementaryTypeName", - "src": "367:7:7", + "src": "367:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5156,11 +5156,11 @@ }, { "constant": false, - "id": 987, + "id": 1116, "name": "ownerCount", "nodeType": "VariableDeclaration", - "scope": 1343, - "src": "397:18:7", + "scope": 1472, + "src": "397:18:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5168,10 +5168,10 @@ "typeString": "uint256" }, "typeName": { - "id": 986, + "id": 1115, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "397:7:7", + "src": "397:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5182,11 +5182,11 @@ }, { "constant": false, - "id": 989, + "id": 1118, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 1343, - "src": "421:24:7", + "scope": 1472, + "src": "421:24:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5194,10 +5194,10 @@ "typeString": "uint8" }, "typeName": { - "id": 988, + "id": 1117, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "421:5:7", + "src": "421:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5208,9 +5208,9 @@ }, { "body": { - "id": 1082, + "id": 1211, "nodeType": "Block", - "src": "720:946:7", + "src": "720:946:9", "statements": [ { "expression": { @@ -5222,19 +5222,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1000, + "id": 1129, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 998, + "id": 1127, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "862:9:7", + "referencedDeclaration": 1118, + "src": "862:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5245,14 +5245,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 999, + "id": 1128, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "875:1:7", + "src": "875:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5260,7 +5260,7 @@ }, "value": "0" }, - "src": "862:14:7", + "src": "862:14:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5274,21 +5274,21 @@ "typeString": "bool" } ], - "id": 997, + "id": 1126, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "854:7:7", + "referencedDeclaration": 2601, + "src": "854:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1001, + "id": 1130, "isConstant": false, "isLValue": false, "isPure": false, @@ -5296,15 +5296,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "854:23:7", + "src": "854:23:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1002, + "id": 1131, "nodeType": "ExpressionStatement", - "src": "854:23:7" + "src": "854:23:9" }, { "expression": { @@ -5316,19 +5316,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1007, + "id": 1136, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1004, + "id": 1133, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "970:10:7", + "referencedDeclaration": 1123, + "src": "970:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5340,18 +5340,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1005, + "id": 1134, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "984:7:7", + "referencedDeclaration": 1121, + "src": "984:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1006, + "id": 1135, "isConstant": false, "isLValue": false, "isPure": false, @@ -5359,13 +5359,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "984:14:7", + "src": "984:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "970:28:7", + "src": "970:28:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5379,21 +5379,21 @@ "typeString": "bool" } ], - "id": 1003, + "id": 1132, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "962:7:7", + "referencedDeclaration": 2601, + "src": "962:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1008, + "id": 1137, "isConstant": false, "isLValue": false, "isPure": false, @@ -5401,15 +5401,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "962:37:7", + "src": "962:37:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1009, + "id": 1138, "nodeType": "ExpressionStatement", - "src": "962:37:7" + "src": "962:37:9" }, { "expression": { @@ -5421,19 +5421,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1013, + "id": 1142, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1011, + "id": 1140, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "1069:10:7", + "referencedDeclaration": 1123, + "src": "1069:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5444,14 +5444,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1012, + "id": 1141, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1083:1:7", + "src": "1083:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5459,7 +5459,7 @@ }, "value": "1" }, - "src": "1069:15:7", + "src": "1069:15:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5473,21 +5473,21 @@ "typeString": "bool" } ], - "id": 1010, + "id": 1139, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1061:7:7", + "referencedDeclaration": 2601, + "src": "1061:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1014, + "id": 1143, "isConstant": false, "isLValue": false, "isPure": false, @@ -5495,28 +5495,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1061:24:7", + "src": "1061:24:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1015, + "id": 1144, "nodeType": "ExpressionStatement", - "src": "1061:24:7" + "src": "1061:24:9" }, { "assignments": [ - 1017 + 1146 ], "declarations": [ { "constant": false, - "id": 1017, + "id": 1146, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1083, - "src": "1132:20:7", + "scope": 1212, + "src": "1132:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5524,10 +5524,10 @@ "typeString": "address" }, "typeName": { - "id": 1016, + "id": 1145, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1132:7:7", + "src": "1132:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5537,41 +5537,41 @@ "visibility": "internal" } ], - "id": 1019, + "id": 1148, "initialValue": { "argumentTypes": null, - "id": 1018, + "id": 1147, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "1155:15:7", + "referencedDeclaration": 1110, + "src": "1155:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1132:38:7" + "src": "1132:38:9" }, { "body": { - "id": 1065, + "id": 1194, "nodeType": "Block", - "src": "1225:318:7", + "src": "1225:318:9", "statements": [ { "assignments": [ - 1032 + 1161 ], "declarations": [ { "constant": false, - "id": 1032, + "id": 1161, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1083, - "src": "1284:13:7", + "scope": 1212, + "src": "1284:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5579,10 +5579,10 @@ "typeString": "address" }, "typeName": { - "id": 1031, + "id": 1160, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1284:7:7", + "src": "1284:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5592,31 +5592,31 @@ "visibility": "internal" } ], - "id": 1036, + "id": 1165, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1033, + "id": 1162, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "1300:7:7", + "referencedDeclaration": 1121, + "src": "1300:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1035, + "id": 1164, "indexExpression": { "argumentTypes": null, - "id": 1034, + "id": 1163, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1021, - "src": "1308:1:7", + "referencedDeclaration": 1150, + "src": "1308:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5627,14 +5627,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1300:10:7", + "src": "1300:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1284:26:7" + "src": "1284:26:9" }, { "expression": { @@ -5646,7 +5646,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1044, + "id": 1173, "isConstant": false, "isLValue": false, "isPure": false, @@ -5657,19 +5657,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1040, + "id": 1169, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1038, + "id": 1167, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "1332:5:7", + "referencedDeclaration": 1161, + "src": "1332:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5680,14 +5680,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1039, + "id": 1168, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1341:1:7", + "src": "1341:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5695,7 +5695,7 @@ }, "value": "0" }, - "src": "1332:10:7", + "src": "1332:10:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5709,19 +5709,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1043, + "id": 1172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1041, + "id": 1170, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "1346:5:7", + "referencedDeclaration": 1161, + "src": "1346:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5731,24 +5731,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1042, + "id": 1171, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "1355:15:7", + "referencedDeclaration": 1110, + "src": "1355:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1346:24:7", + "src": "1346:24:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1332:38:7", + "src": "1332:38:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5762,21 +5762,21 @@ "typeString": "bool" } ], - "id": 1037, + "id": 1166, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1324:7:7", + "referencedDeclaration": 2601, + "src": "1324:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1045, + "id": 1174, "isConstant": false, "isLValue": false, "isPure": false, @@ -5784,15 +5784,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1324:47:7", + "src": "1324:47:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1046, + "id": 1175, "nodeType": "ExpressionStatement", - "src": "1324:47:7" + "src": "1324:47:9" }, { "expression": { @@ -5804,7 +5804,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1052, + "id": 1181, "isConstant": false, "isLValue": false, "isPure": false, @@ -5813,26 +5813,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1048, + "id": 1177, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "1437:6:7", + "referencedDeclaration": 1114, + "src": "1437:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1050, + "id": 1179, "indexExpression": { "argumentTypes": null, - "id": 1049, + "id": 1178, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "1444:5:7", + "referencedDeclaration": 1161, + "src": "1444:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5843,7 +5843,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1437:13:7", + "src": "1437:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5854,14 +5854,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1051, + "id": 1180, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1454:1:7", + "src": "1454:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5869,7 +5869,7 @@ }, "value": "0" }, - "src": "1437:18:7", + "src": "1437:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5883,21 +5883,21 @@ "typeString": "bool" } ], - "id": 1047, + "id": 1176, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1429:7:7", + "referencedDeclaration": 2601, + "src": "1429:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1053, + "id": 1182, "isConstant": false, "isLValue": false, "isPure": false, @@ -5905,20 +5905,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1429:27:7", + "src": "1429:27:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1054, + "id": 1183, "nodeType": "ExpressionStatement", - "src": "1429:27:7" + "src": "1429:27:9" }, { "expression": { "argumentTypes": null, - "id": 1059, + "id": 1188, "isConstant": false, "isLValue": false, "isPure": false, @@ -5927,26 +5927,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1055, + "id": 1184, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "1470:6:7", + "referencedDeclaration": 1114, + "src": "1470:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1057, + "id": 1186, "indexExpression": { "argumentTypes": null, - "id": 1056, + "id": 1185, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1017, - "src": "1477:12:7", + "referencedDeclaration": 1146, + "src": "1477:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5957,7 +5957,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1470:20:7", + "src": "1470:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5967,43 +5967,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1058, + "id": 1187, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "1493:5:7", + "referencedDeclaration": 1161, + "src": "1493:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1470:28:7", + "src": "1470:28:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1060, + "id": 1189, "nodeType": "ExpressionStatement", - "src": "1470:28:7" + "src": "1470:28:9" }, { "expression": { "argumentTypes": null, - "id": 1063, + "id": 1192, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1061, + "id": 1190, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1017, - "src": "1512:12:7", + "referencedDeclaration": 1146, + "src": "1512:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6013,26 +6013,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1062, + "id": 1191, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "1527:5:7", + "referencedDeclaration": 1161, + "src": "1527:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1512:20:7", + "src": "1512:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1064, + "id": 1193, "nodeType": "ExpressionStatement", - "src": "1512:20:7" + "src": "1512:20:9" } ] }, @@ -6042,19 +6042,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1027, + "id": 1156, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1024, + "id": 1153, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1021, - "src": "1200:1:7", + "referencedDeclaration": 1150, + "src": "1200:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6066,18 +6066,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1025, + "id": 1154, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "1204:7:7", + "referencedDeclaration": 1121, + "src": "1204:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1026, + "id": 1155, "isConstant": false, "isLValue": false, "isPure": false, @@ -6085,31 +6085,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1204:14:7", + "src": "1204:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1200:18:7", + "src": "1200:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1066, + "id": 1195, "initializationExpression": { "assignments": [ - 1021 + 1150 ], "declarations": [ { "constant": false, - "id": 1021, + "id": 1150, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1083, - "src": "1185:9:7", + "scope": 1212, + "src": "1185:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6117,10 +6117,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1020, + "id": 1149, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1185:7:7", + "src": "1185:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6130,18 +6130,18 @@ "visibility": "internal" } ], - "id": 1023, + "id": 1152, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1022, + "id": 1151, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1197:1:7", + "src": "1197:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6150,12 +6150,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1185:13:7" + "src": "1185:13:9" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1029, + "id": 1158, "isConstant": false, "isLValue": false, "isPure": false, @@ -6163,15 +6163,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1220:3:7", + "src": "1220:3:9", "subExpression": { "argumentTypes": null, - "id": 1028, + "id": 1157, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1021, - "src": "1220:1:7", + "referencedDeclaration": 1150, + "src": "1220:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6182,17 +6182,17 @@ "typeString": "uint256" } }, - "id": 1030, + "id": 1159, "nodeType": "ExpressionStatement", - "src": "1220:3:7" + "src": "1220:3:9" }, "nodeType": "ForStatement", - "src": "1180:363:7" + "src": "1180:363:9" }, { "expression": { "argumentTypes": null, - "id": 1071, + "id": 1200, "isConstant": false, "isLValue": false, "isPure": false, @@ -6201,26 +6201,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1067, + "id": 1196, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "1552:6:7", + "referencedDeclaration": 1114, + "src": "1552:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1069, + "id": 1198, "indexExpression": { "argumentTypes": null, - "id": 1068, + "id": 1197, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1017, - "src": "1559:12:7", + "referencedDeclaration": 1146, + "src": "1559:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6231,7 +6231,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1552:20:7", + "src": "1552:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6241,43 +6241,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1070, + "id": 1199, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "1575:15:7", + "referencedDeclaration": 1110, + "src": "1575:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1552:38:7", + "src": "1552:38:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1072, + "id": 1201, "nodeType": "ExpressionStatement", - "src": "1552:38:7" + "src": "1552:38:9" }, { "expression": { "argumentTypes": null, - "id": 1076, + "id": 1205, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1073, + "id": 1202, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "1600:10:7", + "referencedDeclaration": 1116, + "src": "1600:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6289,18 +6289,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1074, + "id": 1203, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 992, - "src": "1613:7:7", + "referencedDeclaration": 1121, + "src": "1613:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1075, + "id": 1204, "isConstant": false, "isLValue": false, "isPure": false, @@ -6308,38 +6308,38 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1613:14:7", + "src": "1613:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1600:27:7", + "src": "1600:27:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1077, + "id": 1206, "nodeType": "ExpressionStatement", - "src": "1600:27:7" + "src": "1600:27:9" }, { "expression": { "argumentTypes": null, - "id": 1080, + "id": 1209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1078, + "id": 1207, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "1637:9:7", + "referencedDeclaration": 1118, + "src": "1637:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6349,31 +6349,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1079, + "id": 1208, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 994, - "src": "1649:10:7", + "referencedDeclaration": 1123, + "src": "1649:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "1637:22:7", + "src": "1637:22:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1081, + "id": 1210, "nodeType": "ExpressionStatement", - "src": "1637:22:7" + "src": "1637:22:9" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param _owners List of Safe owners.\n @param _threshold Number of required confirmations for a Safe transaction.", - "id": 1083, + "id": 1212, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6381,16 +6381,16 @@ "name": "setupOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 995, + "id": 1124, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 992, + "id": 1121, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 1083, - "src": "662:17:7", + "scope": 1212, + "src": "662:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6399,19 +6399,19 @@ }, "typeName": { "baseType": { - "id": 990, + "id": 1119, "name": "address", "nodeType": "ElementaryTypeName", - "src": "662:7:7", + "src": "662:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 991, + "id": 1120, "length": null, "nodeType": "ArrayTypeName", - "src": "662:9:7", + "src": "662:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -6422,11 +6422,11 @@ }, { "constant": false, - "id": 994, + "id": 1123, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1083, - "src": "681:16:7", + "scope": 1212, + "src": "681:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6434,10 +6434,10 @@ "typeString": "uint8" }, "typeName": { - "id": 993, + "id": 1122, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "681:5:7", + "src": "681:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6447,26 +6447,26 @@ "visibility": "internal" } ], - "src": "661:37:7" + "src": "661:37:9" }, "payable": false, "returnParameters": { - "id": 996, + "id": 1125, "nodeType": "ParameterList", "parameters": [], - "src": "720:0:7" + "src": "720:0:9" }, - "scope": 1343, - "src": "641:1025:7", + "scope": 1472, + "src": "641:1025:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1135, + "id": 1264, "nodeType": "Block", - "src": "2008:426:7", + "src": "2008:426:9", "statements": [ { "expression": { @@ -6478,7 +6478,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1099, + "id": 1228, "isConstant": false, "isLValue": false, "isPure": false, @@ -6489,19 +6489,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1095, + "id": 1224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1093, + "id": 1222, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1085, - "src": "2067:5:7", + "referencedDeclaration": 1214, + "src": "2067:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6512,14 +6512,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1094, + "id": 1223, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2076:1:7", + "src": "2076:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6527,7 +6527,7 @@ }, "value": "0" }, - "src": "2067:10:7", + "src": "2067:10:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6541,19 +6541,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1098, + "id": 1227, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1096, + "id": 1225, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1085, - "src": "2081:5:7", + "referencedDeclaration": 1214, + "src": "2081:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6563,24 +6563,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1097, + "id": 1226, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "2090:15:7", + "referencedDeclaration": 1110, + "src": "2090:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2081:24:7", + "src": "2081:24:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2067:38:7", + "src": "2067:38:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6594,21 +6594,21 @@ "typeString": "bool" } ], - "id": 1092, + "id": 1221, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2059:7:7", + "referencedDeclaration": 2601, + "src": "2059:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1100, + "id": 1229, "isConstant": false, "isLValue": false, "isPure": false, @@ -6616,15 +6616,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2059:47:7", + "src": "2059:47:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1101, + "id": 1230, "nodeType": "ExpressionStatement", - "src": "2059:47:7" + "src": "2059:47:9" }, { "expression": { @@ -6636,7 +6636,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1107, + "id": 1236, "isConstant": false, "isLValue": false, "isPure": false, @@ -6645,26 +6645,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1103, + "id": 1232, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "2164:6:7", + "referencedDeclaration": 1114, + "src": "2164:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1105, + "id": 1234, "indexExpression": { "argumentTypes": null, - "id": 1104, + "id": 1233, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1085, - "src": "2171:5:7", + "referencedDeclaration": 1214, + "src": "2171:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6675,7 +6675,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2164:13:7", + "src": "2164:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6686,14 +6686,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1106, + "id": 1235, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2181:1:7", + "src": "2181:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6701,7 +6701,7 @@ }, "value": "0" }, - "src": "2164:18:7", + "src": "2164:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6715,21 +6715,21 @@ "typeString": "bool" } ], - "id": 1102, + "id": 1231, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2156:7:7", + "referencedDeclaration": 2601, + "src": "2156:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1108, + "id": 1237, "isConstant": false, "isLValue": false, "isPure": false, @@ -6737,20 +6737,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2156:27:7", + "src": "2156:27:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1109, + "id": 1238, "nodeType": "ExpressionStatement", - "src": "2156:27:7" + "src": "2156:27:9" }, { "expression": { "argumentTypes": null, - "id": 1116, + "id": 1245, "isConstant": false, "isLValue": false, "isPure": false, @@ -6759,26 +6759,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1110, + "id": 1239, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "2193:6:7", + "referencedDeclaration": 1114, + "src": "2193:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1112, + "id": 1241, "indexExpression": { "argumentTypes": null, - "id": 1111, + "id": 1240, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1085, - "src": "2200:5:7", + "referencedDeclaration": 1214, + "src": "2200:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6789,7 +6789,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2193:13:7", + "src": "2193:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6801,26 +6801,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1113, + "id": 1242, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "2209:6:7", + "referencedDeclaration": 1114, + "src": "2209:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1115, + "id": 1244, "indexExpression": { "argumentTypes": null, - "id": 1114, + "id": 1243, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "2216:15:7", + "referencedDeclaration": 1110, + "src": "2216:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6831,26 +6831,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2209:23:7", + "src": "2209:23:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2193:39:7", + "src": "2193:39:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1117, + "id": 1246, "nodeType": "ExpressionStatement", - "src": "2193:39:7" + "src": "2193:39:9" }, { "expression": { "argumentTypes": null, - "id": 1122, + "id": 1251, "isConstant": false, "isLValue": false, "isPure": false, @@ -6859,26 +6859,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1118, + "id": 1247, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "2242:6:7", + "referencedDeclaration": 1114, + "src": "2242:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1120, + "id": 1249, "indexExpression": { "argumentTypes": null, - "id": 1119, + "id": 1248, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "2249:15:7", + "referencedDeclaration": 1110, + "src": "2249:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6889,7 +6889,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2242:23:7", + "src": "2242:23:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6899,31 +6899,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1121, + "id": 1250, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1085, - "src": "2268:5:7", + "referencedDeclaration": 1214, + "src": "2268:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2242:31:7", + "src": "2242:31:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1123, + "id": 1252, "nodeType": "ExpressionStatement", - "src": "2242:31:7" + "src": "2242:31:9" }, { "expression": { "argumentTypes": null, - "id": 1125, + "id": 1254, "isConstant": false, "isLValue": false, "isPure": false, @@ -6931,15 +6931,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2283:12:7", + "src": "2283:12:9", "subExpression": { "argumentTypes": null, - "id": 1124, + "id": 1253, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "2283:10:7", + "referencedDeclaration": 1116, + "src": "2283:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6950,9 +6950,9 @@ "typeString": "uint256" } }, - "id": 1126, + "id": 1255, "nodeType": "ExpressionStatement", - "src": "2283:12:7" + "src": "2283:12:9" }, { "condition": { @@ -6961,19 +6961,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1129, + "id": 1258, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1127, + "id": 1256, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "2363:9:7", + "referencedDeclaration": 1118, + "src": "2363:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -6983,39 +6983,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1128, + "id": 1257, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "2376:10:7", + "referencedDeclaration": 1216, + "src": "2376:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "2363:23:7", + "src": "2363:23:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1134, + "id": 1263, "nodeType": "IfStatement", - "src": "2359:68:7", + "src": "2359:68:9", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1131, + "id": 1260, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1087, - "src": "2416:10:7", + "referencedDeclaration": 1216, + "src": "2416:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7029,18 +7029,18 @@ "typeString": "uint8" } ], - "id": 1130, + "id": 1259, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1271, - "src": "2400:15:7", + "referencedDeclaration": 1400, + "src": "2400:15:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1132, + "id": 1261, "isConstant": false, "isLValue": false, "isPure": false, @@ -7048,58 +7048,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2400:27:7", + "src": "2400:27:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1133, + "id": 1262, "nodeType": "ExpressionStatement", - "src": "2400:27:7" + "src": "2400:27:9" } } ] }, "documentation": "@dev Allows to add a new owner to the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param owner New owner address.\n @param _threshold New threshold.", - "id": 1136, + "id": 1265, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1090, + "id": 1219, "modifierName": { "argumentTypes": null, - "id": 1089, + "id": 1218, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "1993:10:7", + "referencedDeclaration": 1618, + "src": "1993:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1993:10:7" + "src": "1993:10:9" } ], "name": "addOwnerWithThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1088, + "id": 1217, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1085, + "id": 1214, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1136, - "src": "1937:13:7", + "scope": 1265, + "src": "1937:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7107,10 +7107,10 @@ "typeString": "address" }, "typeName": { - "id": 1084, + "id": 1213, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1937:7:7", + "src": "1937:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7121,11 +7121,11 @@ }, { "constant": false, - "id": 1087, + "id": 1216, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1136, - "src": "1952:16:7", + "scope": 1265, + "src": "1952:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7133,10 +7133,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1086, + "id": 1215, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1952:5:7", + "src": "1952:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7146,26 +7146,26 @@ "visibility": "internal" } ], - "src": "1936:33:7" + "src": "1936:33:9" }, "payable": false, "returnParameters": { - "id": 1091, + "id": 1220, "nodeType": "ParameterList", "parameters": [], - "src": "2008:0:7" + "src": "2008:0:9" }, - "scope": 1343, - "src": "1906:528:7", + "scope": 1472, + "src": "1906:528:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1188, + "id": 1317, "nodeType": "Block", - "src": "2887:462:7", + "src": "2887:462:9", "statements": [ { "expression": { @@ -7177,7 +7177,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1152, + "id": 1281, "isConstant": false, "isLValue": false, "isPure": false, @@ -7188,19 +7188,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1150, + "id": 1279, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1148, + "id": 1277, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "2982:10:7", + "referencedDeclaration": 1116, + "src": "2982:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7211,14 +7211,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1149, + "id": 1278, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2995:1:7", + "src": "2995:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -7226,7 +7226,7 @@ }, "value": "1" }, - "src": "2982:14:7", + "src": "2982:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7236,18 +7236,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 1151, + "id": 1280, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1142, - "src": "3000:10:7", + "referencedDeclaration": 1271, + "src": "3000:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "2982:28:7", + "src": "2982:28:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7261,21 +7261,21 @@ "typeString": "bool" } ], - "id": 1147, + "id": 1276, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2974:7:7", + "referencedDeclaration": 2601, + "src": "2974:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1153, + "id": 1282, "isConstant": false, "isLValue": false, "isPure": false, @@ -7283,15 +7283,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2974:37:7", + "src": "2974:37:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1154, + "id": 1283, "nodeType": "ExpressionStatement", - "src": "2974:37:7" + "src": "2974:37:9" }, { "expression": { @@ -7303,7 +7303,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1160, + "id": 1289, "isConstant": false, "isLValue": false, "isPure": false, @@ -7312,26 +7312,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1156, + "id": 1285, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "3091:6:7", + "referencedDeclaration": 1114, + "src": "3091:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1158, + "id": 1287, "indexExpression": { "argumentTypes": null, - "id": 1157, + "id": 1286, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "3098:9:7", + "referencedDeclaration": 1267, + "src": "3098:9:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7342,7 +7342,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3091:17:7", + "src": "3091:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7352,18 +7352,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1159, + "id": 1288, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1140, - "src": "3112:5:7", + "referencedDeclaration": 1269, + "src": "3112:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3091:26:7", + "src": "3091:26:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7377,21 +7377,21 @@ "typeString": "bool" } ], - "id": 1155, + "id": 1284, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "3083:7:7", + "referencedDeclaration": 2601, + "src": "3083:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1161, + "id": 1290, "isConstant": false, "isLValue": false, "isPure": false, @@ -7399,20 +7399,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3083:35:7", + "src": "3083:35:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1162, + "id": 1291, "nodeType": "ExpressionStatement", - "src": "3083:35:7" + "src": "3083:35:9" }, { "expression": { "argumentTypes": null, - "id": 1169, + "id": 1298, "isConstant": false, "isLValue": false, "isPure": false, @@ -7421,26 +7421,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1163, + "id": 1292, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "3128:6:7", + "referencedDeclaration": 1114, + "src": "3128:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1165, + "id": 1294, "indexExpression": { "argumentTypes": null, - "id": 1164, + "id": 1293, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "3135:9:7", + "referencedDeclaration": 1267, + "src": "3135:9:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7451,7 +7451,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3128:17:7", + "src": "3128:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7463,26 +7463,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1166, + "id": 1295, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "3148:6:7", + "referencedDeclaration": 1114, + "src": "3148:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1168, + "id": 1297, "indexExpression": { "argumentTypes": null, - "id": 1167, + "id": 1296, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1140, - "src": "3155:5:7", + "referencedDeclaration": 1269, + "src": "3155:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7493,26 +7493,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3148:13:7", + "src": "3148:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3128:33:7", + "src": "3128:33:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1170, + "id": 1299, "nodeType": "ExpressionStatement", - "src": "3128:33:7" + "src": "3128:33:9" }, { "expression": { "argumentTypes": null, - "id": 1175, + "id": 1304, "isConstant": false, "isLValue": false, "isPure": false, @@ -7521,26 +7521,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1171, + "id": 1300, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "3171:6:7", + "referencedDeclaration": 1114, + "src": "3171:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1173, + "id": 1302, "indexExpression": { "argumentTypes": null, - "id": 1172, + "id": 1301, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1140, - "src": "3178:5:7", + "referencedDeclaration": 1269, + "src": "3178:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7551,7 +7551,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3171:13:7", + "src": "3171:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7562,14 +7562,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1174, + "id": 1303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3187:1:7", + "src": "3187:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7577,20 +7577,20 @@ }, "value": "0" }, - "src": "3171:17:7", + "src": "3171:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1176, + "id": 1305, "nodeType": "ExpressionStatement", - "src": "3171:17:7" + "src": "3171:17:9" }, { "expression": { "argumentTypes": null, - "id": 1178, + "id": 1307, "isConstant": false, "isLValue": false, "isPure": false, @@ -7598,15 +7598,15 @@ "nodeType": "UnaryOperation", "operator": "--", "prefix": false, - "src": "3198:12:7", + "src": "3198:12:9", "subExpression": { "argumentTypes": null, - "id": 1177, + "id": 1306, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "3198:10:7", + "referencedDeclaration": 1116, + "src": "3198:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7617,9 +7617,9 @@ "typeString": "uint256" } }, - "id": 1179, + "id": 1308, "nodeType": "ExpressionStatement", - "src": "3198:12:7" + "src": "3198:12:9" }, { "condition": { @@ -7628,19 +7628,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1182, + "id": 1311, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1180, + "id": 1309, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "3278:9:7", + "referencedDeclaration": 1118, + "src": "3278:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7650,39 +7650,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1181, + "id": 1310, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1142, - "src": "3291:10:7", + "referencedDeclaration": 1271, + "src": "3291:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "3278:23:7", + "src": "3278:23:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1187, + "id": 1316, "nodeType": "IfStatement", - "src": "3274:68:7", + "src": "3274:68:9", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1184, + "id": 1313, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1142, - "src": "3331:10:7", + "referencedDeclaration": 1271, + "src": "3331:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7696,18 +7696,18 @@ "typeString": "uint8" } ], - "id": 1183, + "id": 1312, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1271, - "src": "3315:15:7", + "referencedDeclaration": 1400, + "src": "3315:15:9", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$returns$__$", "typeString": "function (uint8)" } }, - "id": 1185, + "id": 1314, "isConstant": false, "isLValue": false, "isPure": false, @@ -7715,58 +7715,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3315:27:7", + "src": "3315:27:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1186, + "id": 1315, "nodeType": "ExpressionStatement", - "src": "3315:27:7" + "src": "3315:27:9" } } ] }, "documentation": "@dev Allows to remove an owner from the Safe and update the threshold at the same time.\n This can only be done via a Safe transaction.\n @param prevOwner Owner that pointed to the owner to be removed in the linked list\n @param owner Owner address to be removed.\n @param _threshold New threshold.", - "id": 1189, + "id": 1318, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1145, + "id": 1274, "modifierName": { "argumentTypes": null, - "id": 1144, + "id": 1273, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "2872:10:7", + "referencedDeclaration": 1618, + "src": "2872:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2872:10:7" + "src": "2872:10:9" } ], "name": "removeOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1143, + "id": 1272, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1138, + "id": 1267, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1189, - "src": "2797:17:7", + "scope": 1318, + "src": "2797:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7774,10 +7774,10 @@ "typeString": "address" }, "typeName": { - "id": 1137, + "id": 1266, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2797:7:7", + "src": "2797:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7788,11 +7788,11 @@ }, { "constant": false, - "id": 1140, + "id": 1269, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1189, - "src": "2816:13:7", + "scope": 1318, + "src": "2816:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7800,10 +7800,10 @@ "typeString": "address" }, "typeName": { - "id": 1139, + "id": 1268, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2816:7:7", + "src": "2816:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7814,11 +7814,11 @@ }, { "constant": false, - "id": 1142, + "id": 1271, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1189, - "src": "2831:16:7", + "scope": 1318, + "src": "2831:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7826,10 +7826,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1141, + "id": 1270, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2831:5:7", + "src": "2831:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -7839,26 +7839,26 @@ "visibility": "internal" } ], - "src": "2796:52:7" + "src": "2796:52:9" }, "payable": false, "returnParameters": { - "id": 1146, + "id": 1275, "nodeType": "ParameterList", "parameters": [], - "src": "2887:0:7" + "src": "2887:0:9" }, - "scope": 1343, - "src": "2776:573:7", + "scope": 1472, + "src": "2776:573:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1246, + "id": 1375, "nodeType": "Block", - "src": "3795:414:7", + "src": "3795:414:9", "statements": [ { "expression": { @@ -7870,7 +7870,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1207, + "id": 1336, "isConstant": false, "isLValue": false, "isPure": false, @@ -7881,19 +7881,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1203, + "id": 1332, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1201, + "id": 1330, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "3854:8:7", + "referencedDeclaration": 1324, + "src": "3854:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7904,14 +7904,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1202, + "id": 1331, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3866:1:7", + "src": "3866:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7919,7 +7919,7 @@ }, "value": "0" }, - "src": "3854:13:7", + "src": "3854:13:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7933,19 +7933,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1206, + "id": 1335, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1204, + "id": 1333, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "3871:8:7", + "referencedDeclaration": 1324, + "src": "3871:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7955,24 +7955,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1205, + "id": 1334, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3883:15:7", + "referencedDeclaration": 1110, + "src": "3883:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3871:27:7", + "src": "3871:27:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3854:44:7", + "src": "3854:44:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7986,21 +7986,21 @@ "typeString": "bool" } ], - "id": 1200, + "id": 1329, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "3846:7:7", + "referencedDeclaration": 2601, + "src": "3846:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1208, + "id": 1337, "isConstant": false, "isLValue": false, "isPure": false, @@ -8008,15 +8008,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3846:53:7", + "src": "3846:53:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1209, + "id": 1338, "nodeType": "ExpressionStatement", - "src": "3846:53:7" + "src": "3846:53:9" }, { "expression": { @@ -8028,7 +8028,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1215, + "id": 1344, "isConstant": false, "isLValue": false, "isPure": false, @@ -8037,26 +8037,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1211, + "id": 1340, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "3957:6:7", + "referencedDeclaration": 1114, + "src": "3957:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1213, + "id": 1342, "indexExpression": { "argumentTypes": null, - "id": 1212, + "id": 1341, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "3964:8:7", + "referencedDeclaration": 1324, + "src": "3964:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8067,7 +8067,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3957:16:7", + "src": "3957:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8078,14 +8078,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1214, + "id": 1343, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3977:1:7", + "src": "3977:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8093,7 +8093,7 @@ }, "value": "0" }, - "src": "3957:21:7", + "src": "3957:21:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8107,21 +8107,21 @@ "typeString": "bool" } ], - "id": 1210, + "id": 1339, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "3949:7:7", + "referencedDeclaration": 2601, + "src": "3949:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1216, + "id": 1345, "isConstant": false, "isLValue": false, "isPure": false, @@ -8129,15 +8129,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3949:30:7", + "src": "3949:30:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1217, + "id": 1346, "nodeType": "ExpressionStatement", - "src": "3949:30:7" + "src": "3949:30:9" }, { "expression": { @@ -8149,7 +8149,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1223, + "id": 1352, "isConstant": false, "isLValue": false, "isPure": false, @@ -8158,26 +8158,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1219, + "id": 1348, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "4059:6:7", + "referencedDeclaration": 1114, + "src": "4059:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1221, + "id": 1350, "indexExpression": { "argumentTypes": null, - "id": 1220, + "id": 1349, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1191, - "src": "4066:9:7", + "referencedDeclaration": 1320, + "src": "4066:9:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8188,7 +8188,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4059:17:7", + "src": "4059:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8198,18 +8198,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1222, + "id": 1351, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1193, - "src": "4080:8:7", + "referencedDeclaration": 1322, + "src": "4080:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4059:29:7", + "src": "4059:29:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8223,21 +8223,21 @@ "typeString": "bool" } ], - "id": 1218, + "id": 1347, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "4051:7:7", + "referencedDeclaration": 2601, + "src": "4051:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1224, + "id": 1353, "isConstant": false, "isLValue": false, "isPure": false, @@ -8245,20 +8245,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4051:38:7", + "src": "4051:38:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1225, + "id": 1354, "nodeType": "ExpressionStatement", - "src": "4051:38:7" + "src": "4051:38:9" }, { "expression": { "argumentTypes": null, - "id": 1232, + "id": 1361, "isConstant": false, "isLValue": false, "isPure": false, @@ -8267,26 +8267,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1226, + "id": 1355, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "4099:6:7", + "referencedDeclaration": 1114, + "src": "4099:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1228, + "id": 1357, "indexExpression": { "argumentTypes": null, - "id": 1227, + "id": 1356, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "4106:8:7", + "referencedDeclaration": 1324, + "src": "4106:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8297,7 +8297,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4099:16:7", + "src": "4099:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8309,26 +8309,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1229, + "id": 1358, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "4118:6:7", + "referencedDeclaration": 1114, + "src": "4118:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1231, + "id": 1360, "indexExpression": { "argumentTypes": null, - "id": 1230, + "id": 1359, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1193, - "src": "4125:8:7", + "referencedDeclaration": 1322, + "src": "4125:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8339,26 +8339,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4118:16:7", + "src": "4118:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4099:35:7", + "src": "4099:35:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1233, + "id": 1362, "nodeType": "ExpressionStatement", - "src": "4099:35:7" + "src": "4099:35:9" }, { "expression": { "argumentTypes": null, - "id": 1238, + "id": 1367, "isConstant": false, "isLValue": false, "isPure": false, @@ -8367,26 +8367,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1234, + "id": 1363, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "4144:6:7", + "referencedDeclaration": 1114, + "src": "4144:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1236, + "id": 1365, "indexExpression": { "argumentTypes": null, - "id": 1235, + "id": 1364, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1191, - "src": "4151:9:7", + "referencedDeclaration": 1320, + "src": "4151:9:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8397,7 +8397,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4144:17:7", + "src": "4144:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8407,31 +8407,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1237, + "id": 1366, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1195, - "src": "4164:8:7", + "referencedDeclaration": 1324, + "src": "4164:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4144:28:7", + "src": "4144:28:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1239, + "id": 1368, "nodeType": "ExpressionStatement", - "src": "4144:28:7" + "src": "4144:28:9" }, { "expression": { "argumentTypes": null, - "id": 1244, + "id": 1373, "isConstant": false, "isLValue": false, "isPure": false, @@ -8440,26 +8440,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1240, + "id": 1369, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "4182:6:7", + "referencedDeclaration": 1114, + "src": "4182:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1242, + "id": 1371, "indexExpression": { "argumentTypes": null, - "id": 1241, + "id": 1370, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1193, - "src": "4189:8:7", + "referencedDeclaration": 1322, + "src": "4189:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8470,7 +8470,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4182:16:7", + "src": "4182:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8481,14 +8481,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1243, + "id": 1372, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4201:1:7", + "src": "4201:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8496,57 +8496,57 @@ }, "value": "0" }, - "src": "4182:20:7", + "src": "4182:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1245, + "id": 1374, "nodeType": "ExpressionStatement", - "src": "4182:20:7" + "src": "4182:20:9" } ] }, "documentation": "@dev Allows to swap/replace an owner from the Safe with another address.\n This can only be done via a Safe transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.", - "id": 1247, + "id": 1376, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1198, + "id": 1327, "modifierName": { "argumentTypes": null, - "id": 1197, + "id": 1326, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "3780:10:7", + "referencedDeclaration": 1618, + "src": "3780:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3780:10:7" + "src": "3780:10:9" } ], "name": "swapOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1196, + "id": 1325, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1191, + "id": 1320, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1247, - "src": "3702:17:7", + "scope": 1376, + "src": "3702:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8554,10 +8554,10 @@ "typeString": "address" }, "typeName": { - "id": 1190, + "id": 1319, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3702:7:7", + "src": "3702:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8568,11 +8568,11 @@ }, { "constant": false, - "id": 1193, + "id": 1322, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 1247, - "src": "3721:16:7", + "scope": 1376, + "src": "3721:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8580,10 +8580,10 @@ "typeString": "address" }, "typeName": { - "id": 1192, + "id": 1321, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3721:7:7", + "src": "3721:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8594,11 +8594,11 @@ }, { "constant": false, - "id": 1195, + "id": 1324, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 1247, - "src": "3739:16:7", + "scope": 1376, + "src": "3739:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8606,10 +8606,10 @@ "typeString": "address" }, "typeName": { - "id": 1194, + "id": 1323, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3739:7:7", + "src": "3739:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8619,26 +8619,26 @@ "visibility": "internal" } ], - "src": "3701:55:7" + "src": "3701:55:9" }, "payable": false, "returnParameters": { - "id": 1199, + "id": 1328, "nodeType": "ParameterList", "parameters": [], - "src": "3795:0:7" + "src": "3795:0:9" }, - "scope": 1343, - "src": "3683:526:7", + "scope": 1472, + "src": "3683:526:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1270, + "id": 1399, "nodeType": "Block", - "src": "4479:237:7", + "src": "4479:237:9", "statements": [ { "expression": { @@ -8650,19 +8650,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1257, + "id": 1386, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1255, + "id": 1384, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "4566:10:7", + "referencedDeclaration": 1378, + "src": "4566:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8672,18 +8672,18 @@ "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1256, + "id": 1385, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "4580:10:7", + "referencedDeclaration": 1116, + "src": "4580:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4566:24:7", + "src": "4566:24:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8697,21 +8697,21 @@ "typeString": "bool" } ], - "id": 1254, + "id": 1383, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "4558:7:7", + "referencedDeclaration": 2601, + "src": "4558:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1258, + "id": 1387, "isConstant": false, "isLValue": false, "isPure": false, @@ -8719,15 +8719,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4558:33:7", + "src": "4558:33:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1259, + "id": 1388, "nodeType": "ExpressionStatement", - "src": "4558:33:7" + "src": "4558:33:9" }, { "expression": { @@ -8739,19 +8739,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1263, + "id": 1392, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1261, + "id": 1390, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "4661:10:7", + "referencedDeclaration": 1378, + "src": "4661:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8762,14 +8762,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1262, + "id": 1391, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4675:1:7", + "src": "4675:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -8777,7 +8777,7 @@ }, "value": "1" }, - "src": "4661:15:7", + "src": "4661:15:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8791,21 +8791,21 @@ "typeString": "bool" } ], - "id": 1260, + "id": 1389, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "4653:7:7", + "referencedDeclaration": 2601, + "src": "4653:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1264, + "id": 1393, "isConstant": false, "isLValue": false, "isPure": false, @@ -8813,32 +8813,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4653:24:7", + "src": "4653:24:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1265, + "id": 1394, "nodeType": "ExpressionStatement", - "src": "4653:24:7" + "src": "4653:24:9" }, { "expression": { "argumentTypes": null, - "id": 1268, + "id": 1397, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1266, + "id": 1395, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "4687:9:7", + "referencedDeclaration": 1118, + "src": "4687:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8848,68 +8848,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1267, + "id": 1396, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1249, - "src": "4699:10:7", + "referencedDeclaration": 1378, + "src": "4699:10:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4687:22:7", + "src": "4687:22:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1269, + "id": 1398, "nodeType": "ExpressionStatement", - "src": "4687:22:7" + "src": "4687:22:9" } ] }, "documentation": "@dev Allows to update the number of required confirmations by Safe owners.\n This can only be done via a Safe transaction.\n @param _threshold New threshold.", - "id": 1271, + "id": 1400, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1252, + "id": 1381, "modifierName": { "argumentTypes": null, - "id": 1251, + "id": 1380, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "4464:10:7", + "referencedDeclaration": 1618, + "src": "4464:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4464:10:7" + "src": "4464:10:9" } ], "name": "changeThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1250, + "id": 1379, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1249, + "id": 1378, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1271, - "src": "4423:16:7", + "scope": 1400, + "src": "4423:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8917,10 +8917,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1248, + "id": 1377, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4423:5:7", + "src": "4423:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -8930,50 +8930,50 @@ "visibility": "internal" } ], - "src": "4422:18:7" + "src": "4422:18:9" }, "payable": false, "returnParameters": { - "id": 1253, + "id": 1382, "nodeType": "ParameterList", "parameters": [], - "src": "4479:0:7" + "src": "4479:0:9" }, - "scope": 1343, - "src": "4398:318:7", + "scope": 1472, + "src": "4398:318:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1278, + "id": 1407, "nodeType": "Block", - "src": "4802:33:7", + "src": "4802:33:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 1276, + "id": 1405, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 989, - "src": "4819:9:7", + "referencedDeclaration": 1118, + "src": "4819:9:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 1275, - "id": 1277, + "functionReturnParameters": 1404, + "id": 1406, "nodeType": "Return", - "src": "4812:16:7" + "src": "4812:16:9" } ] }, "documentation": null, - "id": 1279, + "id": 1408, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8981,23 +8981,23 @@ "name": "getThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1272, + "id": 1401, "nodeType": "ParameterList", "parameters": [], - "src": "4743:2:7" + "src": "4743:2:9" }, "payable": false, "returnParameters": { - "id": 1275, + "id": 1404, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1274, + "id": 1403, "name": "", "nodeType": "VariableDeclaration", - "scope": 1279, - "src": "4791:5:7", + "scope": 1408, + "src": "4791:5:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9005,10 +9005,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1273, + "id": 1402, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "4791:5:7", + "src": "4791:5:9", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -9018,19 +9018,19 @@ "visibility": "internal" } ], - "src": "4790:7:7" + "src": "4790:7:9" }, - "scope": 1343, - "src": "4722:113:7", + "scope": 1472, + "src": "4722:113:9", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1292, + "id": 1421, "nodeType": "Block", - "src": "4928:42:7", + "src": "4928:42:9", "statements": [ { "expression": { @@ -9039,7 +9039,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1290, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, @@ -9048,26 +9048,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1286, + "id": 1415, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "4945:6:7", + "referencedDeclaration": 1114, + "src": "4945:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1288, + "id": 1417, "indexExpression": { "argumentTypes": null, - "id": 1287, + "id": 1416, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1281, - "src": "4952:5:7", + "referencedDeclaration": 1410, + "src": "4952:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9078,7 +9078,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4945:13:7", + "src": "4945:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9089,14 +9089,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1289, + "id": 1418, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4962:1:7", + "src": "4962:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9104,21 +9104,21 @@ }, "value": "0" }, - "src": "4945:18:7", + "src": "4945:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1285, - "id": 1291, + "functionReturnParameters": 1414, + "id": 1420, "nodeType": "Return", - "src": "4938:25:7" + "src": "4938:25:9" } ] }, "documentation": null, - "id": 1293, + "id": 1422, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -9126,16 +9126,16 @@ "name": "isOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1282, + "id": 1411, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1281, + "id": 1410, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1293, - "src": "4858:13:7", + "scope": 1422, + "src": "4858:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9143,10 +9143,10 @@ "typeString": "address" }, "typeName": { - "id": 1280, + "id": 1409, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4858:7:7", + "src": "4858:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9156,20 +9156,20 @@ "visibility": "internal" } ], - "src": "4857:15:7" + "src": "4857:15:9" }, "payable": false, "returnParameters": { - "id": 1285, + "id": 1414, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1284, + "id": 1413, "name": "", "nodeType": "VariableDeclaration", - "scope": 1293, - "src": "4918:4:7", + "scope": 1422, + "src": "4918:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9177,10 +9177,10 @@ "typeString": "bool" }, "typeName": { - "id": 1283, + "id": 1412, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4918:4:7", + "src": "4918:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9190,32 +9190,32 @@ "visibility": "internal" } ], - "src": "4917:6:7" + "src": "4917:6:9" }, - "scope": 1343, - "src": "4841:129:7", + "scope": 1472, + "src": "4841:129:9", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1341, + "id": 1470, "nodeType": "Block", - "src": "5133:377:7", + "src": "5133:377:9", "statements": [ { "assignments": [ - 1302 + 1431 ], "declarations": [ { "constant": false, - "id": 1302, + "id": 1431, "name": "array", "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "5143:22:7", + "scope": 1471, + "src": "5143:22:9", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -9224,19 +9224,19 @@ }, "typeName": { "baseType": { - "id": 1300, + "id": 1429, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5143:7:7", + "src": "5143:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1301, + "id": 1430, "length": null, "nodeType": "ArrayTypeName", - "src": "5143:9:7", + "src": "5143:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -9246,18 +9246,18 @@ "visibility": "internal" } ], - "id": 1308, + "id": 1437, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1306, + "id": 1435, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5182:10:7", + "referencedDeclaration": 1116, + "src": "5182:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9271,39 +9271,39 @@ "typeString": "uint256" } ], - "id": 1305, + "id": 1434, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "5168:13:7", + "src": "5168:13:9", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { - "id": 1303, + "id": 1432, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5172:7:7", + "src": "5172:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1304, + "id": 1433, "length": null, "nodeType": "ArrayTypeName", - "src": "5172:9:7", + "src": "5172:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 1307, + "id": 1436, "isConstant": false, "isLValue": false, "isPure": false, @@ -9311,27 +9311,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5168:25:7", + "src": "5168:25:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5143:50:7" + "src": "5143:50:9" }, { "assignments": [ - 1310 + 1439 ], "declarations": [ { "constant": false, - "id": 1310, + "id": 1439, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "5237:13:7", + "scope": 1471, + "src": "5237:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9339,10 +9339,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1309, + "id": 1438, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5237:7:7", + "src": "5237:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9352,18 +9352,18 @@ "visibility": "internal" } ], - "id": 1312, + "id": 1441, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1311, + "id": 1440, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5253:1:7", + "src": "5253:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9372,20 +9372,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "5237:17:7" + "src": "5237:17:9" }, { "assignments": [ - 1314 + 1443 ], "declarations": [ { "constant": false, - "id": 1314, + "id": 1443, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "5264:20:7", + "scope": 1471, + "src": "5264:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9393,10 +9393,10 @@ "typeString": "address" }, "typeName": { - "id": 1313, + "id": 1442, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5264:7:7", + "src": "5264:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9406,31 +9406,31 @@ "visibility": "internal" } ], - "id": 1318, + "id": 1447, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1315, + "id": 1444, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "5287:6:7", + "referencedDeclaration": 1114, + "src": "5287:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1317, + "id": 1446, "indexExpression": { "argumentTypes": null, - "id": 1316, + "id": 1445, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "5294:15:7", + "referencedDeclaration": 1110, + "src": "5294:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9441,25 +9441,25 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5287:23:7", + "src": "5287:23:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "5264:46:7" + "src": "5264:46:9" }, { "body": { - "id": 1337, + "id": 1466, "nodeType": "Block", - "src": "5359:123:7", + "src": "5359:123:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 1326, + "id": 1455, "isConstant": false, "isLValue": false, "isPure": false, @@ -9468,26 +9468,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1322, + "id": 1451, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1302, - "src": "5373:5:7", + "referencedDeclaration": 1431, + "src": "5373:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1324, + "id": 1453, "indexExpression": { "argumentTypes": null, - "id": 1323, + "id": 1452, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "5379:5:7", + "referencedDeclaration": 1439, + "src": "5379:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9498,7 +9498,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5373:12:7", + "src": "5373:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9508,43 +9508,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1325, + "id": 1454, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5388:12:7", + "referencedDeclaration": 1443, + "src": "5388:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5373:27:7", + "src": "5373:27:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1327, + "id": 1456, "nodeType": "ExpressionStatement", - "src": "5373:27:7" + "src": "5373:27:9" }, { "expression": { "argumentTypes": null, - "id": 1332, + "id": 1461, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1328, + "id": 1457, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5414:12:7", + "referencedDeclaration": 1443, + "src": "5414:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9556,26 +9556,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1329, + "id": 1458, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 985, - "src": "5429:6:7", + "referencedDeclaration": 1114, + "src": "5429:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1331, + "id": 1460, "indexExpression": { "argumentTypes": null, - "id": 1330, + "id": 1459, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5436:12:7", + "referencedDeclaration": 1443, + "src": "5436:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9586,26 +9586,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5429:20:7", + "src": "5429:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5414:35:7", + "src": "5414:35:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1333, + "id": 1462, "nodeType": "ExpressionStatement", - "src": "5414:35:7" + "src": "5414:35:9" }, { "expression": { "argumentTypes": null, - "id": 1335, + "id": 1464, "isConstant": false, "isLValue": false, "isPure": false, @@ -9613,15 +9613,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5463:8:7", + "src": "5463:8:9", "subExpression": { "argumentTypes": null, - "id": 1334, + "id": 1463, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "5463:5:7", + "referencedDeclaration": 1439, + "src": "5463:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9632,9 +9632,9 @@ "typeString": "uint256" } }, - "id": 1336, + "id": 1465, "nodeType": "ExpressionStatement", - "src": "5463:8:7" + "src": "5463:8:9" } ] }, @@ -9644,19 +9644,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1321, + "id": 1450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1319, + "id": 1448, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5326:12:7", + "referencedDeclaration": 1443, + "src": "5326:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9666,50 +9666,50 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1320, + "id": 1449, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "5342:15:7", + "referencedDeclaration": 1110, + "src": "5342:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5326:31:7", + "src": "5326:31:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1338, + "id": 1467, "nodeType": "WhileStatement", - "src": "5320:162:7" + "src": "5320:162:9" }, { "expression": { "argumentTypes": null, - "id": 1339, + "id": 1468, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1302, - "src": "5498:5:7", + "referencedDeclaration": 1431, + "src": "5498:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 1298, - "id": 1340, + "functionReturnParameters": 1427, + "id": 1469, "nodeType": "Return", - "src": "5491:12:7" + "src": "5491:12:9" } ] }, "documentation": "@dev Returns array of owners.\n @return Array of Safe owners.", - "id": 1342, + "id": 1471, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -9717,23 +9717,23 @@ "name": "getOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 1294, + "id": 1423, "nodeType": "ParameterList", "parameters": [], - "src": "5070:2:7" + "src": "5070:2:9" }, "payable": false, "returnParameters": { - "id": 1298, + "id": 1427, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1297, + "id": 1426, "name": "", "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "5118:9:7", + "scope": 1471, + "src": "5118:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9742,19 +9742,19 @@ }, "typeName": { "baseType": { - "id": 1295, + "id": 1424, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5118:7:7", + "src": "5118:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1296, + "id": 1425, "length": null, "nodeType": "ArrayTypeName", - "src": "5118:9:7", + "src": "5118:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -9764,26 +9764,26 @@ "visibility": "internal" } ], - "src": "5117:11:7" + "src": "5117:11:9" }, - "scope": 1343, - "src": "5052:458:7", + "scope": 1472, + "src": "5052:458:9", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1344, - "src": "240:5272:7" + "scope": 1473, + "src": "240:5272:9" } ], - "src": "0:5513:7" + "src": "0:5513:9" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-16T10:51:14.752Z" + "updatedAt": "2018-05-27T11:12:45.581Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/PayingProxy.json b/safe-contracts/build/contracts/PayingProxy.json index 4c74b5b8..cc23c459 100644 --- a/safe-contracts/build/contracts/PayingProxy.json +++ b/safe-contracts/build/contracts/PayingProxy.json @@ -44,7 +44,11 @@ "type": "address" }, { - "name": "amount", + "name": "paymentToken", + "type": "address" + }, + { + "name": "payment", "type": "uint256" } ], @@ -58,40 +62,51 @@ "type": "fallback" } ], - "bytecode": "0x608060405234801561001057600080fd5b506040516102d13803806102d18339810180604052810190808051906020019092919080518201929190602001805190602001909291908051906020019092919050505083838160008173ffffffffffffffffffffffffffffffffffffffff161415151561007d57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505060008151111561010a5773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e6000821415610106573d81fd5b5050505b50508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610152573d6000803e3d6000fd5b505050505061016b806101666000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a723058204a5e06b82db5d9aabe30490b09e6366d2451ec220560baef426b0510057dd99b0029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a723058204a5e06b82db5d9aabe30490b09e6366d2451ec220560baef426b0510057dd99b0029", - "sourceMap": "414:457:11:-;;;675:194;8:9:-1;5:2;;;30:1;27;20:12;5:2;675:194:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;784:11;797;668::0;593:1:12;578:11;:16;;;;570:25;;;;;;;;618:11;605:10;;:24;;;;;;;;;;;;;;;;;;508:128;735:1:0;714:11;:18;:22;710:519;;;879:42;875:1;869:8;865:57;1043:1;1040;1026:11;1020:18;1013:4;1000:11;996:22;984:10;976:5;971:3;967:15;954:91;1079:4;1073:11;1124:14;1121:1;1116:3;1101:38;1171:1;1162:7;1159:14;1156:2;;;1188:14;1183:3;1176:27;1156:2;829:390;;;;610:625;;839:6:11;:15;;:23;855:6;839:23;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;839:23:11;675:194;;;;414:457;;;;;;", - "deployedSourceMap": "414:457:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;915:42:12;911:1;905:8;901:57;990:14;987:1;984;971:34;1085:1;1082;1066:14;1063:1;1051:10;1046:3;1033:54;1121:16;1118:1;1115;1100:38;1166:1;1157:7;1154:14;1151:2;;;1181:16;1178:1;1171:27;1151:2;1223:16;1220:1;1213:27;1386:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1386:104:12;;;;;;;;;;;;;;;;;;;;;;;1262:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1262:118:12;;;;;;;;;;;;;;;;;;;;;;;;;;;1386:104;1452:7;1482:1;1475:8;;1386:104;:::o;1262:118::-;1333:7;1363:10;;;;;;;;;;;1356:17;;1262:118;:::o", - "source": "pragma solidity 0.4.23;\nimport \"./DelegateConstructorProxy.sol\";\n\n/// @title Paying Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor. And sends funds after creation to a specified account.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract PayingProxy is DelegateConstructorProxy {\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n /// @param initializer Data used for a delegate call to initialize the contract.\n constructor(address _masterCopy, bytes initializer, address funder, uint256 amount) DelegateConstructorProxy(_masterCopy, initializer)\n public\n {\n funder.transfer(amount);\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b5060405161040a38038061040a833981018060405281019080805190602001909291908051820192919060200180519060200190929190805190602001909291908051906020019092919050505084848160008173ffffffffffffffffffffffffffffffffffffffff161415151561008757600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000815111156101145773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e6000821415610110573d81fd5b5050505b5050600081111561028b57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156101a0578273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561019a573d6000803e3d6000fd5b5061028a565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561024357600080fd5b505af1158015610257573d6000803e3d6000fd5b505050506040513d602081101561026d57600080fd5b8101908080519060200190929190505050151561028957600080fd5b5b5b505050505061016b8061029f6000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820c6b5ccee92e07d7ace7597f14eb09050cef9e7752ac4efc079975eb065e226060029", + "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820c6b5ccee92e07d7ace7597f14eb09050cef9e7752ac4efc079975eb065e226060029", + "sourceMap": "452:905:10:-;;;924:431;8:9:-1;5:2;;;30:1;27;20:12;5:2;924:431:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1065:11;1078;668::0;593:1:11;578:11;:16;;;;570:25;;;;;;;;618:11;605:10;;:24;;;;;;;;;;;;;;;;;;508:128;735:1:0;714:11;:18;:22;710:519;;;879:42;875:1;869:8;865:57;1043:1;1040;1026:11;1020:18;1013:4;1000:11;996:22;984:10;976:5;971:3;967:15;954:91;1079:4;1073:11;1124:14;1121:1;1116:3;1101:38;1171:1;1162:7;1159:14;1156:2;;;1188:14;1183:3;1176:27;1156:2;829:390;;;;610:625;;1134:1:10;1124:7;:11;1120:228;;;1179:1;1155:26;;:12;:26;;;1151:187;;;1201:6;:15;;:24;1217:7;1201:24;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1201:24:10;1151:187;;;1283:12;1272:33;;;1306:6;1314:7;1272:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1272:50:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1272:50:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1272:50:10;;;;;;;;;;;;;;;;1264:59;;;;;;;;1151:187;1120:228;924:431;;;;;452:905;;;;;;", + "deployedSourceMap": "452:905:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;915:42:11;911:1;905:8;901:57;990:14;987:1;984;971:34;1085:1;1082;1066:14;1063:1;1051:10;1046:3;1033:54;1121:16;1118:1;1115;1100:38;1166:1;1157:7;1154:14;1151:2;;;1181:16;1178:1;1171:27;1151:2;1223:16;1220:1;1213:27;1386:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1386:104:11;;;;;;;;;;;;;;;;;;;;;;;1262:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1262:118:11;;;;;;;;;;;;;;;;;;;;;;;;;;;1386:104;1452:7;1482:1;1475:8;;1386:104;:::o;1262:118::-;1333:7;1363:10;;;;;;;;;;;1356:17;;1262:118;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./DelegateConstructorProxy.sol\";\nimport \"./interfaces/ERC20Token.sol\";\n\n/// @title Paying Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor. And sends funds after creation to a specified account.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract PayingProxy is DelegateConstructorProxy {\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n /// @param initializer Data used for a delegate call to initialize the contract.\n /// @param funder Address that should be paid for the execution of this call\n /// @param paymentToken Token that should be used for the payment (0 is ETH)\n /// @param payment Value that should be paid\n constructor(address _masterCopy, bytes initializer, address funder, address paymentToken, uint256 payment) \n DelegateConstructorProxy(_masterCopy, initializer)\n public\n {\n if (payment > 0) {\n if (paymentToken == address(0)) {\n funder.transfer(payment);\n } else {\n require(ERC20Token(paymentToken).transfer(funder, payment));\n }\n } \n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/PayingProxy.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/PayingProxy.sol", "exportedSymbols": { "PayingProxy": [ - 1466 + 1526 ] }, - "id": 1467, + "id": 1527, "nodeType": "SourceUnit", "nodes": [ { - "id": 1440, + "id": 1474, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:11" + "src": "0:23:10" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/DelegateConstructorProxy.sol", "file": "./DelegateConstructorProxy.sol", - "id": 1441, + "id": 1475, "nodeType": "ImportDirective", - "scope": 1467, + "scope": 1527, "sourceUnit": 24, - "src": "24:40:11", + "src": "24:40:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ERC20Token.sol", + "file": "./interfaces/ERC20Token.sol", + "id": 1476, + "nodeType": "ImportDirective", + "scope": 1527, + "sourceUnit": 1686, + "src": "65:37:10", "symbolAliases": [], "unitAlias": "" }, @@ -101,117 +116,449 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1442, + "id": 1477, "name": "DelegateConstructorProxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 23, - "src": "438:24:11", + "src": "476:24:10", "typeDescriptions": { "typeIdentifier": "t_contract$_DelegateConstructorProxy_$23", "typeString": "contract DelegateConstructorProxy" } }, - "id": 1443, + "id": 1478, "nodeType": "InheritanceSpecifier", - "src": "438:24:11" + "src": "476:24:10" } ], "contractDependencies": [ 23, - 1508 + 1568 ], "contractKind": "contract", "documentation": "@title Paying Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor. And sends funds after creation to a specified account.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1466, + "id": 1526, "linearizedBaseContracts": [ - 1466, + 1526, 23, - 1508 + 1568 ], "name": "PayingProxy", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1464, + "id": 1524, "nodeType": "Block", - "src": "829:40:11", + "src": "1110:245:10", "statements": [ { - "expression": { + "condition": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1461, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1451, - "src": "855:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1458, - "name": "funder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1449, - "src": "839:6:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "839:15:11", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 1462, + "id": 1497, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "839:23:11", + "leftExpression": { + "argumentTypes": null, + "id": 1495, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1488, + "src": "1124:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1496, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1134:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1124:11:10", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 1463, - "nodeType": "ExpressionStatement", - "src": "839:23:11" + "falseBody": null, + "id": 1523, + "nodeType": "IfStatement", + "src": "1120:228:10", + "trueBody": { + "id": 1522, + "nodeType": "Block", + "src": "1137:211:10", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1498, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "1155:12:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1179:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1171:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1171:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1155:26:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1520, + "nodeType": "Block", + "src": "1246:92:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1515, + "name": "funder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "1306:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1516, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1488, + "src": "1314:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1512, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "1283:12:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1511, + "name": "ERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "1272:10:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Token_$1685_$", + "typeString": "type(contract ERC20Token)" + } + }, + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1272:24:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Token_$1685", + "typeString": "contract ERC20Token" + } + }, + "id": 1514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1639, + "src": "1272:33:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1272:50:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1510, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2601, + 2602 + ], + "referencedDeclaration": 2601, + "src": "1264:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1264:59:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1519, + "nodeType": "ExpressionStatement", + "src": "1264:59:10" + } + ] + }, + "id": 1521, + "nodeType": "IfStatement", + "src": "1151:187:10", + "trueBody": { + "id": 1509, + "nodeType": "Block", + "src": "1183:57:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1506, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1488, + "src": "1217:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1503, + "name": "funder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "1201:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1201:15:10", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1201:24:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1508, + "nodeType": "ExpressionStatement", + "src": "1201:24:10" + } + ] + } + } + ] + } } ] }, - "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.", - "id": 1465, + "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.\n @param funder Address that should be paid for the execution of this call\n @param paymentToken Token that should be used for the payment (0 is ETH)\n @param payment Value that should be paid", + "id": 1525, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -220,12 +567,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1454, + "id": 1491, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1445, - "src": "784:11:11", + "referencedDeclaration": 1480, + "src": "1065:11:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -233,49 +580,49 @@ }, { "argumentTypes": null, - "id": 1455, + "id": 1492, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1447, - "src": "797:11:11", + "referencedDeclaration": 1482, + "src": "1078:11:10", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], - "id": 1456, + "id": 1493, "modifierName": { "argumentTypes": null, - "id": 1453, + "id": 1490, "name": "DelegateConstructorProxy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 23, - "src": "759:24:11", + "src": "1040:24:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DelegateConstructorProxy_$23_$", "typeString": "type(contract DelegateConstructorProxy)" } }, "nodeType": "ModifierInvocation", - "src": "759:50:11" + "src": "1040:50:10" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1452, + "id": 1489, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1445, + "id": 1480, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 1465, - "src": "687:19:11", + "scope": 1525, + "src": "936:19:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -283,10 +630,10 @@ "typeString": "address" }, "typeName": { - "id": 1444, + "id": 1479, "name": "address", "nodeType": "ElementaryTypeName", - "src": "687:7:11", + "src": "936:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -297,11 +644,11 @@ }, { "constant": false, - "id": 1447, + "id": 1482, "name": "initializer", "nodeType": "VariableDeclaration", - "scope": 1465, - "src": "708:17:11", + "scope": 1525, + "src": "957:17:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -309,10 +656,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1446, + "id": 1481, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "708:5:11", + "src": "957:5:10", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -323,11 +670,11 @@ }, { "constant": false, - "id": 1449, + "id": 1484, "name": "funder", "nodeType": "VariableDeclaration", - "scope": 1465, - "src": "727:14:11", + "scope": 1525, + "src": "976:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -335,10 +682,10 @@ "typeString": "address" }, "typeName": { - "id": 1448, + "id": 1483, "name": "address", "nodeType": "ElementaryTypeName", - "src": "727:7:11", + "src": "976:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -349,11 +696,37 @@ }, { "constant": false, - "id": 1451, - "name": "amount", + "id": 1486, + "name": "paymentToken", "nodeType": "VariableDeclaration", - "scope": 1465, - "src": "743:14:11", + "scope": 1525, + "src": "992:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1485, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "992:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1488, + "name": "payment", + "nodeType": "VariableDeclaration", + "scope": 1525, + "src": "1014:15:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -361,10 +734,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1450, + "id": 1487, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "743:7:11", + "src": "1014:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -374,56 +747,67 @@ "visibility": "internal" } ], - "src": "686:72:11" + "src": "935:95:10" }, "payable": false, "returnParameters": { - "id": 1457, + "id": 1494, "nodeType": "ParameterList", "parameters": [], - "src": "829:0:11" + "src": "1110:0:10" }, - "scope": 1466, - "src": "675:194:11", + "scope": 1526, + "src": "924:431:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1467, - "src": "414:457:11" + "scope": 1527, + "src": "452:905:10" } ], - "src": "0:872:11" + "src": "0:1358:10" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/PayingProxy.sol", "exportedSymbols": { "PayingProxy": [ - 1466 + 1526 ] }, - "id": 1467, + "id": 1527, "nodeType": "SourceUnit", "nodes": [ { - "id": 1440, + "id": 1474, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:11" + "src": "0:23:10" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/DelegateConstructorProxy.sol", "file": "./DelegateConstructorProxy.sol", - "id": 1441, + "id": 1475, "nodeType": "ImportDirective", - "scope": 1467, + "scope": 1527, "sourceUnit": 24, - "src": "24:40:11", + "src": "24:40:10", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ERC20Token.sol", + "file": "./interfaces/ERC20Token.sol", + "id": 1476, + "nodeType": "ImportDirective", + "scope": 1527, + "sourceUnit": 1686, + "src": "65:37:10", "symbolAliases": [], "unitAlias": "" }, @@ -433,117 +817,449 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1442, + "id": 1477, "name": "DelegateConstructorProxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 23, - "src": "438:24:11", + "src": "476:24:10", "typeDescriptions": { "typeIdentifier": "t_contract$_DelegateConstructorProxy_$23", "typeString": "contract DelegateConstructorProxy" } }, - "id": 1443, + "id": 1478, "nodeType": "InheritanceSpecifier", - "src": "438:24:11" + "src": "476:24:10" } ], "contractDependencies": [ 23, - 1508 + 1568 ], "contractKind": "contract", "documentation": "@title Paying Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract. It is possible to send along initialization data with the constructor. And sends funds after creation to a specified account.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1466, + "id": 1526, "linearizedBaseContracts": [ - 1466, + 1526, 23, - 1508 + 1568 ], "name": "PayingProxy", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1464, + "id": 1524, "nodeType": "Block", - "src": "829:40:11", + "src": "1110:245:10", "statements": [ { - "expression": { + "condition": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1461, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1451, - "src": "855:6:11", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1458, - "name": "funder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1449, - "src": "839:6:11", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "839:15:11", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 1462, + "id": 1497, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "839:23:11", + "leftExpression": { + "argumentTypes": null, + "id": 1495, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1488, + "src": "1124:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1496, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1134:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1124:11:10", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 1463, - "nodeType": "ExpressionStatement", - "src": "839:23:11" + "falseBody": null, + "id": 1523, + "nodeType": "IfStatement", + "src": "1120:228:10", + "trueBody": { + "id": 1522, + "nodeType": "Block", + "src": "1137:211:10", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1498, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "1155:12:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1179:1:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1171:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1171:10:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "1155:26:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1520, + "nodeType": "Block", + "src": "1246:92:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1515, + "name": "funder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "1306:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1516, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1488, + "src": "1314:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1512, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "1283:12:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1511, + "name": "ERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1685, + "src": "1272:10:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Token_$1685_$", + "typeString": "type(contract ERC20Token)" + } + }, + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1272:24:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Token_$1685", + "typeString": "contract ERC20Token" + } + }, + "id": 1514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 1639, + "src": "1272:33:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 1517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1272:50:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1510, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2601, + 2602 + ], + "referencedDeclaration": 2601, + "src": "1264:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1264:59:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1519, + "nodeType": "ExpressionStatement", + "src": "1264:59:10" + } + ] + }, + "id": 1521, + "nodeType": "IfStatement", + "src": "1151:187:10", + "trueBody": { + "id": 1509, + "nodeType": "Block", + "src": "1183:57:10", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1506, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1488, + "src": "1217:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1503, + "name": "funder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "1201:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1201:15:10", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1201:24:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1508, + "nodeType": "ExpressionStatement", + "src": "1201:24:10" + } + ] + } + } + ] + } } ] }, - "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.", - "id": 1465, + "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.\n @param initializer Data used for a delegate call to initialize the contract.\n @param funder Address that should be paid for the execution of this call\n @param paymentToken Token that should be used for the payment (0 is ETH)\n @param payment Value that should be paid", + "id": 1525, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -552,12 +1268,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1454, + "id": 1491, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1445, - "src": "784:11:11", + "referencedDeclaration": 1480, + "src": "1065:11:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -565,49 +1281,49 @@ }, { "argumentTypes": null, - "id": 1455, + "id": 1492, "name": "initializer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1447, - "src": "797:11:11", + "referencedDeclaration": 1482, + "src": "1078:11:10", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], - "id": 1456, + "id": 1493, "modifierName": { "argumentTypes": null, - "id": 1453, + "id": 1490, "name": "DelegateConstructorProxy", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 23, - "src": "759:24:11", + "src": "1040:24:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DelegateConstructorProxy_$23_$", "typeString": "type(contract DelegateConstructorProxy)" } }, "nodeType": "ModifierInvocation", - "src": "759:50:11" + "src": "1040:50:10" } ], "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1452, + "id": 1489, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1445, + "id": 1480, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 1465, - "src": "687:19:11", + "scope": 1525, + "src": "936:19:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -615,10 +1331,10 @@ "typeString": "address" }, "typeName": { - "id": 1444, + "id": 1479, "name": "address", "nodeType": "ElementaryTypeName", - "src": "687:7:11", + "src": "936:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -629,11 +1345,11 @@ }, { "constant": false, - "id": 1447, + "id": 1482, "name": "initializer", "nodeType": "VariableDeclaration", - "scope": 1465, - "src": "708:17:11", + "scope": 1525, + "src": "957:17:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -641,10 +1357,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1446, + "id": 1481, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "708:5:11", + "src": "957:5:10", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -655,11 +1371,11 @@ }, { "constant": false, - "id": 1449, + "id": 1484, "name": "funder", "nodeType": "VariableDeclaration", - "scope": 1465, - "src": "727:14:11", + "scope": 1525, + "src": "976:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -667,10 +1383,10 @@ "typeString": "address" }, "typeName": { - "id": 1448, + "id": 1483, "name": "address", "nodeType": "ElementaryTypeName", - "src": "727:7:11", + "src": "976:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -681,11 +1397,37 @@ }, { "constant": false, - "id": 1451, - "name": "amount", + "id": 1486, + "name": "paymentToken", "nodeType": "VariableDeclaration", - "scope": 1465, - "src": "743:14:11", + "scope": 1525, + "src": "992:20:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1485, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "992:7:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1488, + "name": "payment", + "nodeType": "VariableDeclaration", + "scope": 1525, + "src": "1014:15:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -693,10 +1435,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1450, + "id": 1487, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "743:7:11", + "src": "1014:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -706,33 +1448,33 @@ "visibility": "internal" } ], - "src": "686:72:11" + "src": "935:95:10" }, "payable": false, "returnParameters": { - "id": 1457, + "id": 1494, "nodeType": "ParameterList", "parameters": [], - "src": "829:0:11" + "src": "1110:0:10" }, - "scope": 1466, - "src": "675:194:11", + "scope": 1526, + "src": "924:431:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1467, - "src": "414:457:11" + "scope": 1527, + "src": "452:905:10" } ], - "src": "0:872:11" + "src": "0:1358:10" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-10T10:43:07.901Z" + "updatedAt": "2018-05-27T11:12:45.583Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/Proxy.json b/safe-contracts/build/contracts/Proxy.json index 02dd71f4..aae27a07 100644 --- a/safe-contracts/build/contracts/Proxy.json +++ b/safe-contracts/build/contracts/Proxy.json @@ -46,31 +46,31 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506040516020806102148339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff161415151561005957600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806100a96000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a723058209594d3f13f6fbad0d5e33f423014061ae7898100636a8b854618092ea85c15e90029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a723058209594d3f13f6fbad0d5e33f423014061ae7898100636a8b854618092ea85c15e90029", - "sourceMap": "190:1302:12:-;;;508:128;8:9:-1;5:2;;;30:1;27;20:12;5:2;508:128:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;593:1;578:11;:16;;;;570:25;;;;;;;;618:11;605:10;;:24;;;;;;;;;;;;;;;;;;508:128;190:1302;;;;;;", - "deployedSourceMap": "190:1302:12:-;;;;;;;;;;;;;;;;;;;;;;;;;;915:42;911:1;905:8;901:57;990:14;987:1;984;971:34;1085:1;1082;1066:14;1063:1;1051:10;1046:3;1033:54;1121:16;1118:1;1115;1100:38;1166:1;1157:7;1154:14;1151:2;;;1181:16;1178:1;1171:27;1151:2;1223:16;1220:1;1213:27;1386:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1386:104:12;;;;;;;;;;;;;;;;;;;;;;;1262:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1262:118:12;;;;;;;;;;;;;;;;;;;;;;;;;;;1386:104;1452:7;1482:1;1475:8;;1386:104;:::o;1262:118::-;1333:7;1363:10;;;;;;;;;;;1356:17;;1262:118;:::o", - "source": "pragma solidity 0.4.23;\n\n\n/// @title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n/// @author Stefan George - \ncontract Proxy {\n\n // masterCopy always needs to be first declared variable, to ensure that it is at the same location in the contracts to which calls are delegated.\n address masterCopy;\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n constructor(address _masterCopy)\n public\n {\n require(_masterCopy != 0);\n masterCopy = _masterCopy;\n }\n\n /// @dev Fallback function forwards all transactions and returns all received return data.\n function ()\n external\n payable\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n calldatacopy(0, 0, calldatasize())\n let success := delegatecall(gas, masterCopy, 0, calldatasize(), 0, 0)\n returndatacopy(0, 0, returndatasize())\n if eq(success, 0) { revert(0, returndatasize()) }\n return(0, returndatasize())\n }\n }\n\n function implementation()\n public\n view\n returns (address)\n {\n return masterCopy;\n }\n\n function proxyType()\n public\n pure\n returns (uint256)\n {\n return 2;\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b506040516020806102148339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff161415151561005957600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806100a96000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820cd7d1e9dd84eb221f79b1c8f72a39fad7d9f8ab7239d25c1fc563147abcaf4150029", + "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820cd7d1e9dd84eb221f79b1c8f72a39fad7d9f8ab7239d25c1fc563147abcaf4150029", + "sourceMap": "190:1302:11:-;;;508:128;8:9:-1;5:2;;;30:1;27;20:12;5:2;508:128:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;593:1;578:11;:16;;;;570:25;;;;;;;;618:11;605:10;;:24;;;;;;;;;;;;;;;;;;508:128;190:1302;;;;;;", + "deployedSourceMap": "190:1302:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;915:42;911:1;905:8;901:57;990:14;987:1;984;971:34;1085:1;1082;1066:14;1063:1;1051:10;1046:3;1033:54;1121:16;1118:1;1115;1100:38;1166:1;1157:7;1154:14;1151:2;;;1181:16;1178:1;1171:27;1151:2;1223:16;1220:1;1213:27;1386:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1386:104:11;;;;;;;;;;;;;;;;;;;;;;;1262:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1262:118:11;;;;;;;;;;;;;;;;;;;;;;;;;;;1386:104;1452:7;1482:1;1475:8;;1386:104;:::o;1262:118::-;1333:7;1363:10;;;;;;;;;;;1356:17;;1262:118;:::o", + "source": "pragma solidity 0.4.24;\n\n\n/// @title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n/// @author Stefan George - \ncontract Proxy {\n\n // masterCopy always needs to be first declared variable, to ensure that it is at the same location in the contracts to which calls are delegated.\n address masterCopy;\n\n /// @dev Constructor function sets address of master copy contract.\n /// @param _masterCopy Master copy address.\n constructor(address _masterCopy)\n public\n {\n require(_masterCopy != 0);\n masterCopy = _masterCopy;\n }\n\n /// @dev Fallback function forwards all transactions and returns all received return data.\n function ()\n external\n payable\n {\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n calldatacopy(0, 0, calldatasize())\n let success := delegatecall(gas, masterCopy, 0, calldatasize(), 0, 0)\n returndatacopy(0, 0, returndatasize())\n if eq(success, 0) { revert(0, returndatasize()) }\n return(0, returndatasize())\n }\n }\n\n function implementation()\n public\n view\n returns (address)\n {\n return masterCopy;\n }\n\n function proxyType()\n public\n pure\n returns (uint256)\n {\n return 2;\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", "exportedSymbols": { "Proxy": [ - 1508 + 1568 ] }, - "id": 1509, + "id": 1569, "nodeType": "SourceUnit", "nodes": [ { - "id": 1468, + "id": 1528, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:12" + "src": "0:23:11" }, { "baseContracts": [], @@ -78,20 +78,20 @@ "contractKind": "contract", "documentation": "@title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n @author Stefan George - ", "fullyImplemented": true, - "id": 1508, + "id": 1568, "linearizedBaseContracts": [ - 1508 + 1568 ], "name": "Proxy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1470, + "id": 1530, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 1508, - "src": "363:18:12", + "scope": 1568, + "src": "363:18:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -99,10 +99,10 @@ "typeString": "address" }, "typeName": { - "id": 1469, + "id": 1529, "name": "address", "nodeType": "ElementaryTypeName", - "src": "363:7:12", + "src": "363:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -113,9 +113,9 @@ }, { "body": { - "id": 1485, + "id": 1545, "nodeType": "Block", - "src": "560:76:12", + "src": "560:76:11", "statements": [ { "expression": { @@ -127,19 +127,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1478, + "id": 1538, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1476, + "id": 1536, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "578:11:12", + "referencedDeclaration": 1532, + "src": "578:11:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -150,14 +150,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1477, + "id": 1537, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "593:1:12", + "src": "593:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -165,7 +165,7 @@ }, "value": "0" }, - "src": "578:16:12", + "src": "578:16:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -179,21 +179,21 @@ "typeString": "bool" } ], - "id": 1475, + "id": 1535, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2468, - 2469 + 2601, + 2602 ], - "referencedDeclaration": 2468, - "src": "570:7:12", + "referencedDeclaration": 2601, + "src": "570:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1479, + "id": 1539, "isConstant": false, "isLValue": false, "isPure": false, @@ -201,32 +201,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "570:25:12", + "src": "570:25:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1480, + "id": 1540, "nodeType": "ExpressionStatement", - "src": "570:25:12" + "src": "570:25:11" }, { "expression": { "argumentTypes": null, - "id": 1483, + "id": 1543, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1481, + "id": 1541, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1470, - "src": "605:10:12", + "referencedDeclaration": 1530, + "src": "605:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -236,31 +236,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1482, + "id": 1542, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "618:11:12", + "referencedDeclaration": 1532, + "src": "618:11:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "605:24:12", + "src": "605:24:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1484, + "id": 1544, "nodeType": "ExpressionStatement", - "src": "605:24:12" + "src": "605:24:11" } ] }, "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.", - "id": 1486, + "id": 1546, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -268,16 +268,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1473, + "id": 1533, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1472, + "id": 1532, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 1486, - "src": "520:19:12", + "scope": 1546, + "src": "520:19:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -285,10 +285,10 @@ "typeString": "address" }, "typeName": { - "id": 1471, + "id": 1531, "name": "address", "nodeType": "ElementaryTypeName", - "src": "520:7:12", + "src": "520:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -298,38 +298,38 @@ "visibility": "internal" } ], - "src": "519:21:12" + "src": "519:21:11" }, "payable": false, "returnParameters": { - "id": 1474, + "id": 1534, "nodeType": "ParameterList", "parameters": [], - "src": "560:0:12" + "src": "560:0:11" }, - "scope": 1508, - "src": "508:128:12", + "scope": 1568, + "src": "508:128:11", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1490, + "id": 1550, "nodeType": "Block", - "src": "786:470:12", + "src": "786:470:11", "statements": [ { "externalReferences": [], - "id": 1489, + "id": 1549, "nodeType": "InlineAssembly", "operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n calldatacopy(0, 0, calldatasize())\n let success := delegatecall(gas(), masterCopy, 0, calldatasize(), 0, 0)\n returndatacopy(0, 0, returndatasize())\n if eq(success, 0)\n {\n revert(0, returndatasize())\n }\n return(0, returndatasize())\n}", - "src": "860:396:12" + "src": "860:396:11" } ] }, "documentation": "@dev Fallback function forwards all transactions and returns all received return data.", - "id": 1491, + "id": 1551, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -337,53 +337,53 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1487, + "id": 1547, "nodeType": "ParameterList", "parameters": [], - "src": "746:2:12" + "src": "746:2:11" }, "payable": true, "returnParameters": { - "id": 1488, + "id": 1548, "nodeType": "ParameterList", "parameters": [], - "src": "786:0:12" + "src": "786:0:11" }, - "scope": 1508, - "src": "737:519:12", + "scope": 1568, + "src": "737:519:11", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 1498, + "id": 1558, "nodeType": "Block", - "src": "1346:34:12", + "src": "1346:34:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 1496, + "id": 1556, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1470, - "src": "1363:10:12", + "referencedDeclaration": 1530, + "src": "1363:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1495, - "id": 1497, + "functionReturnParameters": 1555, + "id": 1557, "nodeType": "Return", - "src": "1356:17:12" + "src": "1356:17:11" } ] }, "documentation": null, - "id": 1499, + "id": 1559, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -391,23 +391,23 @@ "name": "implementation", "nodeType": "FunctionDefinition", "parameters": { - "id": 1492, + "id": 1552, "nodeType": "ParameterList", "parameters": [], - "src": "1285:2:12" + "src": "1285:2:11" }, "payable": false, "returnParameters": { - "id": 1495, + "id": 1555, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1494, + "id": 1554, "name": "", "nodeType": "VariableDeclaration", - "scope": 1499, - "src": "1333:7:12", + "scope": 1559, + "src": "1333:7:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -415,10 +415,10 @@ "typeString": "address" }, "typeName": { - "id": 1493, + "id": 1553, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1333:7:12", + "src": "1333:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -428,32 +428,32 @@ "visibility": "internal" } ], - "src": "1332:9:12" + "src": "1332:9:11" }, - "scope": 1508, - "src": "1262:118:12", + "scope": 1568, + "src": "1262:118:11", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1506, + "id": 1566, "nodeType": "Block", - "src": "1465:25:12", + "src": "1465:25:11", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "32", - "id": 1504, + "id": 1564, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1482:1:12", + "src": "1482:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -461,15 +461,15 @@ }, "value": "2" }, - "functionReturnParameters": 1503, - "id": 1505, + "functionReturnParameters": 1563, + "id": 1565, "nodeType": "Return", - "src": "1475:8:12" + "src": "1475:8:11" } ] }, "documentation": null, - "id": 1507, + "id": 1567, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -477,23 +477,23 @@ "name": "proxyType", "nodeType": "FunctionDefinition", "parameters": { - "id": 1500, + "id": 1560, "nodeType": "ParameterList", "parameters": [], - "src": "1404:2:12" + "src": "1404:2:11" }, "payable": false, "returnParameters": { - "id": 1503, + "id": 1563, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1502, + "id": 1562, "name": "", "nodeType": "VariableDeclaration", - "scope": 1507, - "src": "1452:7:12", + "scope": 1567, + "src": "1452:7:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -501,10 +501,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1501, + "id": 1561, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1452:7:12", + "src": "1452:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -514,40 +514,40 @@ "visibility": "internal" } ], - "src": "1451:9:12" + "src": "1451:9:11" }, - "scope": 1508, - "src": "1386:104:12", + "scope": 1568, + "src": "1386:104:11", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 1509, - "src": "190:1302:12" + "scope": 1569, + "src": "190:1302:11" } ], - "src": "0:1493:12" + "src": "0:1493:11" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", "exportedSymbols": { "Proxy": [ - 1508 + 1568 ] }, - "id": 1509, + "id": 1569, "nodeType": "SourceUnit", "nodes": [ { - "id": 1468, + "id": 1528, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:12" + "src": "0:23:11" }, { "baseContracts": [], @@ -555,20 +555,20 @@ "contractKind": "contract", "documentation": "@title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.\n @author Stefan George - ", "fullyImplemented": true, - "id": 1508, + "id": 1568, "linearizedBaseContracts": [ - 1508 + 1568 ], "name": "Proxy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 1470, + "id": 1530, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 1508, - "src": "363:18:12", + "scope": 1568, + "src": "363:18:11", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -576,10 +576,10 @@ "typeString": "address" }, "typeName": { - "id": 1469, + "id": 1529, "name": "address", "nodeType": "ElementaryTypeName", - "src": "363:7:12", + "src": "363:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -590,9 +590,9 @@ }, { "body": { - "id": 1485, + "id": 1545, "nodeType": "Block", - "src": "560:76:12", + "src": "560:76:11", "statements": [ { "expression": { @@ -604,19 +604,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1478, + "id": 1538, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1476, + "id": 1536, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "578:11:12", + "referencedDeclaration": 1532, + "src": "578:11:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -627,14 +627,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1477, + "id": 1537, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "593:1:12", + "src": "593:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -642,7 +642,7 @@ }, "value": "0" }, - "src": "578:16:12", + "src": "578:16:11", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -656,21 +656,21 @@ "typeString": "bool" } ], - "id": 1475, + "id": 1535, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2468, - 2469 + 2601, + 2602 ], - "referencedDeclaration": 2468, - "src": "570:7:12", + "referencedDeclaration": 2601, + "src": "570:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1479, + "id": 1539, "isConstant": false, "isLValue": false, "isPure": false, @@ -678,32 +678,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "570:25:12", + "src": "570:25:11", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1480, + "id": 1540, "nodeType": "ExpressionStatement", - "src": "570:25:12" + "src": "570:25:11" }, { "expression": { "argumentTypes": null, - "id": 1483, + "id": 1543, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1481, + "id": 1541, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1470, - "src": "605:10:12", + "referencedDeclaration": 1530, + "src": "605:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -713,31 +713,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1482, + "id": 1542, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1472, - "src": "618:11:12", + "referencedDeclaration": 1532, + "src": "618:11:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "605:24:12", + "src": "605:24:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1484, + "id": 1544, "nodeType": "ExpressionStatement", - "src": "605:24:12" + "src": "605:24:11" } ] }, "documentation": "@dev Constructor function sets address of master copy contract.\n @param _masterCopy Master copy address.", - "id": 1486, + "id": 1546, "implemented": true, "isConstructor": true, "isDeclaredConst": false, @@ -745,16 +745,16 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1473, + "id": 1533, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1472, + "id": 1532, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 1486, - "src": "520:19:12", + "scope": 1546, + "src": "520:19:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -762,10 +762,10 @@ "typeString": "address" }, "typeName": { - "id": 1471, + "id": 1531, "name": "address", "nodeType": "ElementaryTypeName", - "src": "520:7:12", + "src": "520:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -775,38 +775,38 @@ "visibility": "internal" } ], - "src": "519:21:12" + "src": "519:21:11" }, "payable": false, "returnParameters": { - "id": 1474, + "id": 1534, "nodeType": "ParameterList", "parameters": [], - "src": "560:0:12" + "src": "560:0:11" }, - "scope": 1508, - "src": "508:128:12", + "scope": 1568, + "src": "508:128:11", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1490, + "id": 1550, "nodeType": "Block", - "src": "786:470:12", + "src": "786:470:11", "statements": [ { "externalReferences": [], - "id": 1489, + "id": 1549, "nodeType": "InlineAssembly", "operations": "{\n let masterCopy := and(sload(0), 0xffffffffffffffffffffffffffffffffffffffff)\n calldatacopy(0, 0, calldatasize())\n let success := delegatecall(gas(), masterCopy, 0, calldatasize(), 0, 0)\n returndatacopy(0, 0, returndatasize())\n if eq(success, 0)\n {\n revert(0, returndatasize())\n }\n return(0, returndatasize())\n}", - "src": "860:396:12" + "src": "860:396:11" } ] }, "documentation": "@dev Fallback function forwards all transactions and returns all received return data.", - "id": 1491, + "id": 1551, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -814,53 +814,53 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 1487, + "id": 1547, "nodeType": "ParameterList", "parameters": [], - "src": "746:2:12" + "src": "746:2:11" }, "payable": true, "returnParameters": { - "id": 1488, + "id": 1548, "nodeType": "ParameterList", "parameters": [], - "src": "786:0:12" + "src": "786:0:11" }, - "scope": 1508, - "src": "737:519:12", + "scope": 1568, + "src": "737:519:11", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 1498, + "id": 1558, "nodeType": "Block", - "src": "1346:34:12", + "src": "1346:34:11", "statements": [ { "expression": { "argumentTypes": null, - "id": 1496, + "id": 1556, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1470, - "src": "1363:10:12", + "referencedDeclaration": 1530, + "src": "1363:10:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1495, - "id": 1497, + "functionReturnParameters": 1555, + "id": 1557, "nodeType": "Return", - "src": "1356:17:12" + "src": "1356:17:11" } ] }, "documentation": null, - "id": 1499, + "id": 1559, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -868,23 +868,23 @@ "name": "implementation", "nodeType": "FunctionDefinition", "parameters": { - "id": 1492, + "id": 1552, "nodeType": "ParameterList", "parameters": [], - "src": "1285:2:12" + "src": "1285:2:11" }, "payable": false, "returnParameters": { - "id": 1495, + "id": 1555, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1494, + "id": 1554, "name": "", "nodeType": "VariableDeclaration", - "scope": 1499, - "src": "1333:7:12", + "scope": 1559, + "src": "1333:7:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -892,10 +892,10 @@ "typeString": "address" }, "typeName": { - "id": 1493, + "id": 1553, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1333:7:12", + "src": "1333:7:11", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -905,32 +905,32 @@ "visibility": "internal" } ], - "src": "1332:9:12" + "src": "1332:9:11" }, - "scope": 1508, - "src": "1262:118:12", + "scope": 1568, + "src": "1262:118:11", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1506, + "id": 1566, "nodeType": "Block", - "src": "1465:25:12", + "src": "1465:25:11", "statements": [ { "expression": { "argumentTypes": null, "hexValue": "32", - "id": 1504, + "id": 1564, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1482:1:12", + "src": "1482:1:11", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -938,15 +938,15 @@ }, "value": "2" }, - "functionReturnParameters": 1503, - "id": 1505, + "functionReturnParameters": 1563, + "id": 1565, "nodeType": "Return", - "src": "1475:8:12" + "src": "1475:8:11" } ] }, "documentation": null, - "id": 1507, + "id": 1567, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -954,23 +954,23 @@ "name": "proxyType", "nodeType": "FunctionDefinition", "parameters": { - "id": 1500, + "id": 1560, "nodeType": "ParameterList", "parameters": [], - "src": "1404:2:12" + "src": "1404:2:11" }, "payable": false, "returnParameters": { - "id": 1503, + "id": 1563, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1502, + "id": 1562, "name": "", "nodeType": "VariableDeclaration", - "scope": 1507, - "src": "1452:7:12", + "scope": 1567, + "src": "1452:7:11", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -978,10 +978,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1501, + "id": 1561, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1452:7:12", + "src": "1452:7:11", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -991,26 +991,26 @@ "visibility": "internal" } ], - "src": "1451:9:12" + "src": "1451:9:11" }, - "scope": 1508, - "src": "1386:104:12", + "scope": 1568, + "src": "1386:104:11", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 1509, - "src": "190:1302:12" + "scope": 1569, + "src": "190:1302:11" } ], - "src": "0:1493:12" + "src": "0:1493:11" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-10T10:43:07.901Z" + "updatedAt": "2018-05-27T11:12:45.583Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/ProxyFactory.json b/safe-contracts/build/contracts/ProxyFactory.json index c909e2ff..faa58fb9 100644 --- a/safe-contracts/build/contracts/ProxyFactory.json +++ b/safe-contracts/build/contracts/ProxyFactory.json @@ -37,54 +37,54 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061044e806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806361b69abd14610046575b600080fd5b34801561005257600080fd5b506100cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061010f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008261011a6101fe565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015801561016c573d6000803e3d6000fd5b5090506000825111156101955760008060008451602086016000865af1141561019457600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a192915050565b6040516102148061020f833901905600608060405234801561001057600080fd5b506040516020806102148339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff161415151561005957600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806100a96000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a723058209594d3f13f6fbad0d5e33f423014061ae7898100636a8b854618092ea85c15e90029a165627a7a7230582048e6ac6bd11856ae7c073d3f3d327f3e04a2dff35dfbcf223c8a425cba2fa6a10029", - "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806361b69abd14610046575b600080fd5b34801561005257600080fd5b506100cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061010f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008261011a6101fe565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015801561016c573d6000803e3d6000fd5b5090506000825111156101955760008060008451602086016000865af1141561019457600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a192915050565b6040516102148061020f833901905600608060405234801561001057600080fd5b506040516020806102148339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff161415151561005957600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806100a96000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a723058209594d3f13f6fbad0d5e33f423014061ae7898100636a8b854618092ea85c15e90029a165627a7a7230582048e6ac6bd11856ae7c073d3f3d327f3e04a2dff35dfbcf223c8a425cba2fa6a10029", - "sourceMap": "225:725:13:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;225:725:13;;;;;;;", - "deployedSourceMap": "225:725:13:-;;;;;;;;;;;;;;;;;;;;;;;;532:416;;8:9:-1;5:2;;;30:1;27;20:12;5:2;532:416:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;617:11;662:10;652:21;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;652:21:13;644:29;;701:1;687:4;:11;:15;683:237;;;874:1;870;867;860:4;854:11;847:4;841;837:15;834:1;827:5;822:3;817:55;814:62;811:2;;;889:1;886;879:12;811:2;793:114;921:20;935:5;921:20;;;;;;;;;;;;;;;;;;;;;;532:416;;;;:::o;225:725::-;;;;;;;;;;:::o", - "source": "pragma solidity 0.4.23;\nimport \"./Proxy.sol\";\n\n\n/// @title Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n/// @author Stefan George - \ncontract ProxyFactory {\n\n event ProxyCreation(Proxy proxy);\n\n /// @dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n /// @param masterCopy Address of master copy.\n /// @param data Payload for message call sent to new proxy contract.\n function createProxy(address masterCopy, bytes data)\n public\n returns (Proxy proxy)\n {\n proxy = new Proxy(masterCopy);\n if (data.length > 0)\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n if eq(call(gas, proxy, 0, add(data, 0x20), mload(data), 0, 0), 0) { revert(0, 0) }\n }\n emit ProxyCreation(proxy);\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b5061044e806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806361b69abd14610046575b600080fd5b34801561005257600080fd5b506100cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061010f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008261011a6101fe565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015801561016c573d6000803e3d6000fd5b5090506000825111156101955760008060008451602086016000865af1141561019457600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a192915050565b6040516102148061020f833901905600608060405234801561001057600080fd5b506040516020806102148339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff161415151561005957600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806100a96000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820cd7d1e9dd84eb221f79b1c8f72a39fad7d9f8ab7239d25c1fc563147abcaf4150029a165627a7a72305820894d1145d2178ea5a3debf7a1ffb29cfdf9100a5997f8e3b2c8640a6db5c5b120029", + "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806361b69abd14610046575b600080fd5b34801561005257600080fd5b506100cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061010f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008261011a6101fe565b808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050604051809103906000f08015801561016c573d6000803e3d6000fd5b5090506000825111156101955760008060008451602086016000865af1141561019457600080fd5b5b7fa38789425dbeee0239e16ff2d2567e31720127fbc6430758c1a4efc6aef29f8081604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a192915050565b6040516102148061020f833901905600608060405234801561001057600080fd5b506040516020806102148339810180604052810190808051906020019092919050505060008173ffffffffffffffffffffffffffffffffffffffff161415151561005957600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505061016b806100a96000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820cd7d1e9dd84eb221f79b1c8f72a39fad7d9f8ab7239d25c1fc563147abcaf4150029a165627a7a72305820894d1145d2178ea5a3debf7a1ffb29cfdf9100a5997f8e3b2c8640a6db5c5b120029", + "sourceMap": "225:725:12:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;225:725:12;;;;;;;", + "deployedSourceMap": "225:725:12:-;;;;;;;;;;;;;;;;;;;;;;;;532:416;;8:9:-1;5:2;;;30:1;27;20:12;5:2;532:416:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;617:11;662:10;652:21;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;652:21:12;644:29;;701:1;687:4;:11;:15;683:237;;;874:1;870;867;860:4;854:11;847:4;841;837:15;834:1;827:5;822:3;817:55;814:62;811:2;;;889:1;886;879:12;811:2;793:114;921:20;935:5;921:20;;;;;;;;;;;;;;;;;;;;;;532:416;;;;:::o;225:725::-;;;;;;;;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./Proxy.sol\";\n\n\n/// @title Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n/// @author Stefan George - \ncontract ProxyFactory {\n\n event ProxyCreation(Proxy proxy);\n\n /// @dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n /// @param masterCopy Address of master copy.\n /// @param data Payload for message call sent to new proxy contract.\n function createProxy(address masterCopy, bytes data)\n public\n returns (Proxy proxy)\n {\n proxy = new Proxy(masterCopy);\n if (data.length > 0)\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n if eq(call(gas, proxy, 0, add(data, 0x20), mload(data), 0, 0), 0) { revert(0, 0) }\n }\n emit ProxyCreation(proxy);\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ProxyFactory.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ProxyFactory.sol", "exportedSymbols": { "ProxyFactory": [ - 1543 + 1603 ] }, - "id": 1544, + "id": 1604, "nodeType": "SourceUnit", "nodes": [ { - "id": 1510, + "id": 1570, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:13" + "src": "0:23:12" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", "file": "./Proxy.sol", - "id": 1511, + "id": 1571, "nodeType": "ImportDirective", - "scope": 1544, - "sourceUnit": 1509, - "src": "24:21:13", + "scope": 1604, + "sourceUnit": 1569, + "src": "24:21:12", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [ - 1508 + 1568 ], "contractKind": "contract", "documentation": "@title Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @author Stefan George - ", "fullyImplemented": true, - "id": 1543, + "id": 1603, "linearizedBaseContracts": [ - 1543 + 1603 ], "name": "ProxyFactory", "nodeType": "ContractDefinition", @@ -92,36 +92,36 @@ { "anonymous": false, "documentation": null, - "id": 1515, + "id": 1575, "name": "ProxyCreation", "nodeType": "EventDefinition", "parameters": { - "id": 1514, + "id": 1574, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1513, + "id": 1573, "indexed": false, "name": "proxy", "nodeType": "VariableDeclaration", - "scope": 1515, - "src": "274:11:13", + "scope": 1575, + "src": "274:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, - "id": 1512, + "id": 1572, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1508, - "src": "274:5:13", + "referencedDeclaration": 1568, + "src": "274:5:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } }, @@ -129,34 +129,34 @@ "visibility": "internal" } ], - "src": "273:13:13" + "src": "273:13:12" }, - "src": "254:33:13" + "src": "254:33:12" }, { "body": { - "id": 1541, + "id": 1601, "nodeType": "Block", - "src": "634:314:13", + "src": "634:314:12", "statements": [ { "expression": { "argumentTypes": null, - "id": 1529, + "id": 1589, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1524, + "id": 1584, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1522, - "src": "644:5:13", + "referencedDeclaration": 1582, + "src": "644:5:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } }, @@ -167,12 +167,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1527, + "id": 1587, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, - "src": "662:10:13", + "referencedDeclaration": 1577, + "src": "662:10:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -186,31 +186,31 @@ "typeString": "address" } ], - "id": 1526, + "id": 1586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "652:9:13", + "src": "652:9:12", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$1508_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$1568_$", "typeString": "function (address) returns (contract Proxy)" }, "typeName": { "contractScope": null, - "id": 1525, + "id": 1585, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1508, - "src": "656:5:13", + "referencedDeclaration": 1568, + "src": "656:5:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } } }, - "id": 1528, + "id": 1588, "isConstant": false, "isLValue": false, "isPure": false, @@ -218,21 +218,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "652:21:13", + "src": "652:21:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } }, - "src": "644:29:13", + "src": "644:29:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } }, - "id": 1530, + "id": 1590, "nodeType": "ExpressionStatement", - "src": "644:29:13" + "src": "644:29:12" }, { "condition": { @@ -241,7 +241,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1534, + "id": 1594, "isConstant": false, "isLValue": false, "isPure": false, @@ -250,18 +250,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1531, + "id": 1591, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1519, - "src": "687:4:13", + "referencedDeclaration": 1579, + "src": "687:4:12", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1532, + "id": 1592, "isConstant": false, "isLValue": false, "isPure": false, @@ -269,7 +269,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "687:11:13", + "src": "687:11:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -280,14 +280,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1533, + "id": 1593, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "701:1:13", + "src": "701:1:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -295,50 +295,50 @@ }, "value": "0" }, - "src": "687:15:13", + "src": "687:15:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1536, + "id": 1596, "nodeType": "IfStatement", - "src": "683:237:13", + "src": "683:237:12", "trueBody": { "externalReferences": [ { "data": { - "declaration": 1519, + "declaration": 1579, "isOffset": false, "isSlot": false, - "src": "860:4:13", + "src": "860:4:12", "valueSize": 1 } }, { "proxy": { - "declaration": 1522, + "declaration": 1582, "isOffset": false, "isSlot": false, - "src": "827:5:13", + "src": "827:5:12", "valueSize": 1 } }, { "data": { - "declaration": 1519, + "declaration": 1579, "isOffset": false, "isSlot": false, - "src": "841:4:13", + "src": "841:4:12", "valueSize": 1 } } ], - "id": 1535, + "id": 1595, "nodeType": "InlineAssembly", "operations": "{\n if eq(call(gas(), proxy, 0, add(data, 0x20), mload(data), 0, 0), 0)\n {\n revert(0, 0)\n }\n}", - "src": "784:136:13" + "src": "784:136:12" } }, { @@ -347,14 +347,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1538, + "id": 1598, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1522, - "src": "935:5:13", + "referencedDeclaration": 1582, + "src": "935:5:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } } @@ -362,22 +362,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } ], - "id": 1537, + "id": 1597, "name": "ProxyCreation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1515, - "src": "921:13:13", + "referencedDeclaration": 1575, + "src": "921:13:12", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$1508_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$1568_$returns$__$", "typeString": "function (contract Proxy)" } }, - "id": 1539, + "id": 1599, "isConstant": false, "isLValue": false, "isPure": false, @@ -385,20 +385,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "921:20:13", + "src": "921:20:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1540, + "id": 1600, "nodeType": "EmitStatement", - "src": "916:25:13" + "src": "916:25:12" } ] }, "documentation": "@dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @param masterCopy Address of master copy.\n @param data Payload for message call sent to new proxy contract.", - "id": 1542, + "id": 1602, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -406,16 +406,16 @@ "name": "createProxy", "nodeType": "FunctionDefinition", "parameters": { - "id": 1520, + "id": 1580, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1517, + "id": 1577, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 1542, - "src": "553:18:13", + "scope": 1602, + "src": "553:18:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -423,10 +423,10 @@ "typeString": "address" }, "typeName": { - "id": 1516, + "id": 1576, "name": "address", "nodeType": "ElementaryTypeName", - "src": "553:7:13", + "src": "553:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -437,11 +437,11 @@ }, { "constant": false, - "id": 1519, + "id": 1579, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1542, - "src": "573:10:13", + "scope": 1602, + "src": "573:10:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -449,10 +449,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1518, + "id": 1578, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "573:5:13", + "src": "573:5:12", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -462,35 +462,35 @@ "visibility": "internal" } ], - "src": "552:32:13" + "src": "552:32:12" }, "payable": false, "returnParameters": { - "id": 1523, + "id": 1583, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1522, + "id": 1582, "name": "proxy", "nodeType": "VariableDeclaration", - "scope": 1542, - "src": "617:11:13", + "scope": 1602, + "src": "617:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, - "id": 1521, + "id": 1581, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1508, - "src": "617:5:13", + "referencedDeclaration": 1568, + "src": "617:5:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } }, @@ -498,63 +498,63 @@ "visibility": "internal" } ], - "src": "616:13:13" + "src": "616:13:12" }, - "scope": 1543, - "src": "532:416:13", + "scope": 1603, + "src": "532:416:12", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1544, - "src": "225:725:13" + "scope": 1604, + "src": "225:725:12" } ], - "src": "0:951:13" + "src": "0:951:12" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ProxyFactory.sol", "exportedSymbols": { "ProxyFactory": [ - 1543 + 1603 ] }, - "id": 1544, + "id": 1604, "nodeType": "SourceUnit", "nodes": [ { - "id": 1510, + "id": 1570, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:13" + "src": "0:23:12" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Proxy.sol", "file": "./Proxy.sol", - "id": 1511, + "id": 1571, "nodeType": "ImportDirective", - "scope": 1544, - "sourceUnit": 1509, - "src": "24:21:13", + "scope": 1604, + "sourceUnit": 1569, + "src": "24:21:12", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [], "contractDependencies": [ - 1508 + 1568 ], "contractKind": "contract", "documentation": "@title Proxy Factory - Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @author Stefan George - ", "fullyImplemented": true, - "id": 1543, + "id": 1603, "linearizedBaseContracts": [ - 1543 + 1603 ], "name": "ProxyFactory", "nodeType": "ContractDefinition", @@ -562,36 +562,36 @@ { "anonymous": false, "documentation": null, - "id": 1515, + "id": 1575, "name": "ProxyCreation", "nodeType": "EventDefinition", "parameters": { - "id": 1514, + "id": 1574, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1513, + "id": 1573, "indexed": false, "name": "proxy", "nodeType": "VariableDeclaration", - "scope": 1515, - "src": "274:11:13", + "scope": 1575, + "src": "274:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, - "id": 1512, + "id": 1572, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1508, - "src": "274:5:13", + "referencedDeclaration": 1568, + "src": "274:5:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } }, @@ -599,34 +599,34 @@ "visibility": "internal" } ], - "src": "273:13:13" + "src": "273:13:12" }, - "src": "254:33:13" + "src": "254:33:12" }, { "body": { - "id": 1541, + "id": 1601, "nodeType": "Block", - "src": "634:314:13", + "src": "634:314:12", "statements": [ { "expression": { "argumentTypes": null, - "id": 1529, + "id": 1589, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1524, + "id": 1584, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1522, - "src": "644:5:13", + "referencedDeclaration": 1582, + "src": "644:5:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } }, @@ -637,12 +637,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1527, + "id": 1587, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1517, - "src": "662:10:13", + "referencedDeclaration": 1577, + "src": "662:10:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -656,31 +656,31 @@ "typeString": "address" } ], - "id": 1526, + "id": 1586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "NewExpression", - "src": "652:9:13", + "src": "652:9:12", "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$1508_$", + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$returns$_t_contract$_Proxy_$1568_$", "typeString": "function (address) returns (contract Proxy)" }, "typeName": { "contractScope": null, - "id": 1525, + "id": 1585, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1508, - "src": "656:5:13", + "referencedDeclaration": 1568, + "src": "656:5:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } } }, - "id": 1528, + "id": 1588, "isConstant": false, "isLValue": false, "isPure": false, @@ -688,21 +688,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "652:21:13", + "src": "652:21:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } }, - "src": "644:29:13", + "src": "644:29:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } }, - "id": 1530, + "id": 1590, "nodeType": "ExpressionStatement", - "src": "644:29:13" + "src": "644:29:12" }, { "condition": { @@ -711,7 +711,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1534, + "id": 1594, "isConstant": false, "isLValue": false, "isPure": false, @@ -720,18 +720,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1531, + "id": 1591, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1519, - "src": "687:4:13", + "referencedDeclaration": 1579, + "src": "687:4:12", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1532, + "id": 1592, "isConstant": false, "isLValue": false, "isPure": false, @@ -739,7 +739,7 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "687:11:13", + "src": "687:11:12", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -750,14 +750,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1533, + "id": 1593, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "701:1:13", + "src": "701:1:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -765,50 +765,50 @@ }, "value": "0" }, - "src": "687:15:13", + "src": "687:15:12", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1536, + "id": 1596, "nodeType": "IfStatement", - "src": "683:237:13", + "src": "683:237:12", "trueBody": { "externalReferences": [ { "data": { - "declaration": 1519, + "declaration": 1579, "isOffset": false, "isSlot": false, - "src": "860:4:13", + "src": "860:4:12", "valueSize": 1 } }, { "proxy": { - "declaration": 1522, + "declaration": 1582, "isOffset": false, "isSlot": false, - "src": "827:5:13", + "src": "827:5:12", "valueSize": 1 } }, { "data": { - "declaration": 1519, + "declaration": 1579, "isOffset": false, "isSlot": false, - "src": "841:4:13", + "src": "841:4:12", "valueSize": 1 } } ], - "id": 1535, + "id": 1595, "nodeType": "InlineAssembly", "operations": "{\n if eq(call(gas(), proxy, 0, add(data, 0x20), mload(data), 0, 0), 0)\n {\n revert(0, 0)\n }\n}", - "src": "784:136:13" + "src": "784:136:12" } }, { @@ -817,14 +817,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1538, + "id": 1598, "name": "proxy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1522, - "src": "935:5:13", + "referencedDeclaration": 1582, + "src": "935:5:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } } @@ -832,22 +832,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } ], - "id": 1537, + "id": 1597, "name": "ProxyCreation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1515, - "src": "921:13:13", + "referencedDeclaration": 1575, + "src": "921:13:12", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$1508_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_contract$_Proxy_$1568_$returns$__$", "typeString": "function (contract Proxy)" } }, - "id": 1539, + "id": 1599, "isConstant": false, "isLValue": false, "isPure": false, @@ -855,20 +855,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "921:20:13", + "src": "921:20:12", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1540, + "id": 1600, "nodeType": "EmitStatement", - "src": "916:25:13" + "src": "916:25:12" } ] }, "documentation": "@dev Allows to create new proxy contact and execute a message call to the new proxy within one transaction.\n @param masterCopy Address of master copy.\n @param data Payload for message call sent to new proxy contract.", - "id": 1542, + "id": 1602, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -876,16 +876,16 @@ "name": "createProxy", "nodeType": "FunctionDefinition", "parameters": { - "id": 1520, + "id": 1580, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1517, + "id": 1577, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 1542, - "src": "553:18:13", + "scope": 1602, + "src": "553:18:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -893,10 +893,10 @@ "typeString": "address" }, "typeName": { - "id": 1516, + "id": 1576, "name": "address", "nodeType": "ElementaryTypeName", - "src": "553:7:13", + "src": "553:7:12", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -907,11 +907,11 @@ }, { "constant": false, - "id": 1519, + "id": 1579, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1542, - "src": "573:10:13", + "scope": 1602, + "src": "573:10:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -919,10 +919,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1518, + "id": 1578, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "573:5:13", + "src": "573:5:12", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -932,35 +932,35 @@ "visibility": "internal" } ], - "src": "552:32:13" + "src": "552:32:12" }, "payable": false, "returnParameters": { - "id": 1523, + "id": 1583, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1522, + "id": 1582, "name": "proxy", "nodeType": "VariableDeclaration", - "scope": 1542, - "src": "617:11:13", + "scope": 1602, + "src": "617:11:12", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" }, "typeName": { "contractScope": null, - "id": 1521, + "id": 1581, "name": "Proxy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1508, - "src": "617:5:13", + "referencedDeclaration": 1568, + "src": "617:5:12", "typeDescriptions": { - "typeIdentifier": "t_contract$_Proxy_$1508", + "typeIdentifier": "t_contract$_Proxy_$1568", "typeString": "contract Proxy" } }, @@ -968,63 +968,45 @@ "visibility": "internal" } ], - "src": "616:13:13" + "src": "616:13:12" }, - "scope": 1543, - "src": "532:416:13", + "scope": 1603, + "src": "532:416:12", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1544, - "src": "225:725:13" + "scope": 1604, + "src": "225:725:12" } ], - "src": "0:951:13" + "src": "0:951:12" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { "4": { "events": {}, "links": {}, - "address": "0xf11c9ac85e73435180707156748ecbaf4efc035b", - "transactionHash": "0xf8c48bc1ea023ab15194af47f50d2c8eaeb3d7b9dd13e7325e892e92743c2979" - }, - "1525950336085": { - "events": {}, - "links": {}, - "address": "0x7686eac12d94e3c0bdfe0a00ec759f89fbd115f7", - "transactionHash": "0x5b47c779cfd719a97f218a56d99b64b2c5b382549f3375822d5afed010cdb9c5" - }, - "1526283540628": { - "events": {}, - "links": {}, - "address": "0x321151783f8dfb4699370d1bd5cee4e82bc3b52a", - "transactionHash": "0x5b47c779cfd719a97f218a56d99b64b2c5b382549f3375822d5afed010cdb9c5" - }, - "1526478212260": { - "events": {}, - "links": {}, - "address": "0xf7f9b14921d4723eae3a8b29784c100301f6d8b8", - "transactionHash": "0x5b47c779cfd719a97f218a56d99b64b2c5b382549f3375822d5afed010cdb9c5" - }, - "1526973574996": { - "events": {}, - "links": {}, - "address": "0x91cee89bad367a2621a047c77d65e903acfa8a9d", - "transactionHash": "0x5b47c779cfd719a97f218a56d99b64b2c5b382549f3375822d5afed010cdb9c5" + "address": "0x78b7e500f63afb4c692b9b6a43e092278cbffaa1", + "transactionHash": "0xebf1fca163a66fdf988707624fa744b57d1eeedcc9f7eaee66555d1fc474c01e" }, "1527316019334": { "events": {}, "links": {}, - "address": "0x28ca055db09855f4bfefefd2177e33813f21fd8f", - "transactionHash": "0x5b47c779cfd719a97f218a56d99b64b2c5b382549f3375822d5afed010cdb9c5" + "address": "0x63f96c3c48bf69ce28e8b8be3c092807d9cf75c3", + "transactionHash": "0xbf12ab2315082a4c3e20abe6305376e3669b7cdee1bbfc079934e41aad57f4f3" + }, + "1527420696956": { + "events": {}, + "links": {}, + "address": "0x7be7064be7fa89c37e849fe58d68967da7d912b6", + "transactionHash": "0xc64211adf2eafca94ba6fe1b59e2ddd73ab867efd20ed1db80ca6eee90591aaf" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-26T06:28:28.336Z" + "updatedAt": "2018-05-27T11:31:46.235Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/SelfAuthorized.json b/safe-contracts/build/contracts/SelfAuthorized.json index d881ac34..679b4831 100644 --- a/safe-contracts/build/contracts/SelfAuthorized.json +++ b/safe-contracts/build/contracts/SelfAuthorized.json @@ -1,31 +1,31 @@ { "contractName": "SelfAuthorized", "abi": [], - "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820c359a8a0df732b4d3e100e43277411dee19c572529edb454cbf1fa9ee91508150029", - "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820c359a8a0df732b4d3e100e43277411dee19c572529edb454cbf1fa9ee91508150029", - "sourceMap": "152:118:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;152:118:8;;;;;;;", - "deployedSourceMap": "152:118:8:-;;;;;", - "source": "pragma solidity 0.4.23;\n\n\n/// @title SelfAuthorized - authorizes current contract to perform actions\n/// @author Richard Meissner - \ncontract SelfAuthorized {\n modifier authorized() {\n require(msg.sender == address(this));\n _;\n }\n}\n", + "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820af9f772ea9919e0b590dbadc1d255c497a0a1031eaf00e4735e7b65b3f2e31520029", + "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820af9f772ea9919e0b590dbadc1d255c497a0a1031eaf00e4735e7b65b3f2e31520029", + "sourceMap": "152:118:13:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;152:118:13;;;;;;;", + "deployedSourceMap": "152:118:13:-;;;;;", + "source": "pragma solidity 0.4.24;\n\n\n/// @title SelfAuthorized - authorizes current contract to perform actions\n/// @author Richard Meissner - \ncontract SelfAuthorized {\n modifier authorized() {\n require(msg.sender == address(this));\n _;\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", "exportedSymbols": { "SelfAuthorized": [ - 1359 + 1619 ] }, - "id": 1360, + "id": 1620, "nodeType": "SourceUnit", "nodes": [ { - "id": 1345, + "id": 1605, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:8" + "src": "0:23:13" }, { "baseContracts": [], @@ -33,18 +33,18 @@ "contractKind": "contract", "documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1359, + "id": 1619, "linearizedBaseContracts": [ - 1359 + 1619 ], "name": "SelfAuthorized", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1357, + "id": 1617, "nodeType": "Block", - "src": "204:64:8", + "src": "204:64:13", "statements": [ { "expression": { @@ -56,7 +56,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1353, + "id": 1613, "isConstant": false, "isLValue": false, "isPure": false, @@ -65,18 +65,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1348, + "id": 1608, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "222:3:8", + "referencedDeclaration": 2598, + "src": "222:3:13", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1349, + "id": 1609, "isConstant": false, "isLValue": false, "isPure": false, @@ -84,7 +84,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "222:10:8", + "src": "222:10:13", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -97,14 +97,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1351, + "id": 1611, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2411, - "src": "244:4:8", + "referencedDeclaration": 2617, + "src": "244:4:13", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1359", + "typeIdentifier": "t_contract$_SelfAuthorized_$1619", "typeString": "contract SelfAuthorized" } } @@ -112,24 +112,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SelfAuthorized_$1359", + "typeIdentifier": "t_contract$_SelfAuthorized_$1619", "typeString": "contract SelfAuthorized" } ], - "id": 1350, + "id": 1610, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "236:7:8", + "src": "236:7:13", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1352, + "id": 1612, "isConstant": false, "isLValue": false, "isPure": false, @@ -137,13 +137,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "236:13:8", + "src": "236:13:13", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "222:27:8", + "src": "222:27:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -157,21 +157,21 @@ "typeString": "bool" } ], - "id": 1347, + "id": 1607, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "214:7:8", + "referencedDeclaration": 2601, + "src": "214:7:13", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1354, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": false, @@ -179,62 +179,62 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "214:36:8", + "src": "214:36:13", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1355, + "id": 1615, "nodeType": "ExpressionStatement", - "src": "214:36:8" + "src": "214:36:13" }, { - "id": 1356, + "id": 1616, "nodeType": "PlaceholderStatement", - "src": "260:1:8" + "src": "260:1:13" } ] }, "documentation": null, - "id": 1358, + "id": 1618, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 1346, + "id": 1606, "nodeType": "ParameterList", "parameters": [], - "src": "201:2:8" + "src": "201:2:13" }, - "src": "182:86:8", + "src": "182:86:13", "visibility": "internal" } ], - "scope": 1360, - "src": "152:118:8" + "scope": 1620, + "src": "152:118:13" } ], - "src": "0:271:8" + "src": "0:271:13" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", "exportedSymbols": { "SelfAuthorized": [ - 1359 + 1619 ] }, - "id": 1360, + "id": 1620, "nodeType": "SourceUnit", "nodes": [ { - "id": 1345, + "id": 1605, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:8" + "src": "0:23:13" }, { "baseContracts": [], @@ -242,18 +242,18 @@ "contractKind": "contract", "documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1359, + "id": 1619, "linearizedBaseContracts": [ - 1359 + 1619 ], "name": "SelfAuthorized", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1357, + "id": 1617, "nodeType": "Block", - "src": "204:64:8", + "src": "204:64:13", "statements": [ { "expression": { @@ -265,7 +265,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1353, + "id": 1613, "isConstant": false, "isLValue": false, "isPure": false, @@ -274,18 +274,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1348, + "id": 1608, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "222:3:8", + "referencedDeclaration": 2598, + "src": "222:3:13", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1349, + "id": 1609, "isConstant": false, "isLValue": false, "isPure": false, @@ -293,7 +293,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "222:10:8", + "src": "222:10:13", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -306,14 +306,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1351, + "id": 1611, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2411, - "src": "244:4:8", + "referencedDeclaration": 2617, + "src": "244:4:13", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1359", + "typeIdentifier": "t_contract$_SelfAuthorized_$1619", "typeString": "contract SelfAuthorized" } } @@ -321,24 +321,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SelfAuthorized_$1359", + "typeIdentifier": "t_contract$_SelfAuthorized_$1619", "typeString": "contract SelfAuthorized" } ], - "id": 1350, + "id": 1610, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "236:7:8", + "src": "236:7:13", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1352, + "id": 1612, "isConstant": false, "isLValue": false, "isPure": false, @@ -346,13 +346,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "236:13:8", + "src": "236:13:13", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "222:27:8", + "src": "222:27:13", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -366,21 +366,21 @@ "typeString": "bool" } ], - "id": 1347, + "id": 1607, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "214:7:8", + "referencedDeclaration": 2601, + "src": "214:7:13", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1354, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": false, @@ -388,48 +388,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "214:36:8", + "src": "214:36:13", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1355, + "id": 1615, "nodeType": "ExpressionStatement", - "src": "214:36:8" + "src": "214:36:13" }, { - "id": 1356, + "id": 1616, "nodeType": "PlaceholderStatement", - "src": "260:1:8" + "src": "260:1:13" } ] }, "documentation": null, - "id": 1358, + "id": 1618, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 1346, + "id": 1606, "nodeType": "ParameterList", "parameters": [], - "src": "201:2:8" + "src": "201:2:13" }, - "src": "182:86:8", + "src": "182:86:13", "visibility": "internal" } ], - "scope": 1360, - "src": "152:118:8" + "scope": 1620, + "src": "152:118:13" } ], - "src": "0:271:8" + "src": "0:271:13" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-16T10:51:14.750Z" + "updatedAt": "2018-05-27T11:12:45.584Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/SocialRecoveryModule.json b/safe-contracts/build/contracts/SocialRecoveryModule.json index f16deac0..1da04b63 100644 --- a/safe-contracts/build/contracts/SocialRecoveryModule.json +++ b/safe-contracts/build/contracts/SocialRecoveryModule.json @@ -1,20 +1,6 @@ { "contractName": "SocialRecoveryModule", "abi": [ - { - "constant": true, - "inputs": [], - "name": "REPLACE_OWNER_FUNCTION_IDENTIFIER", - "outputs": [ - { - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, { "constant": true, "inputs": [], @@ -201,8 +187,16 @@ "constant": false, "inputs": [ { - "name": "data", - "type": "bytes" + "name": "prevOwner", + "type": "address" + }, + { + "name": "oldOwner", + "type": "address" + }, + { + "name": "newOwner", + "type": "address" } ], "name": "recoverAccess", @@ -246,77 +240,77 @@ } ], "payable": false, - "stateMutability": "view", + "stateMutability": "pure", "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061113b806100206000396000f3006080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806336749c1a146100e05780633cf5b3091461014957806342cde4e8146101bc578063481c6a75146101ed57806368125a1b1461024457806379716e431461029f5780637de7edef146102d05780639ca89d0d14610313578063a3f4df7e1461035c578063ae68b056146103ec578063b79ffaff14610471578063ce146828146104da578063d2740c7614610547578063e52cb36a146105b0578063ffa1ad74146105f9575b600080fd5b3480156100ec57600080fd5b506100f5610689565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b34801561015557600080fd5b506101ba60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff1690602001909291905050506106ad565b005b3480156101c857600080fd5b506101d1610822565b604051808260ff1660ff16815260200191505060405180910390f35b3480156101f957600080fd5b50610202610835565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025057600080fd5b50610285600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061085b565b604051808215151515815260200191505060405180910390f35b3480156102ab57600080fd5b506102ce600480360381019080803560001916906020019092919050505061087b565b005b3480156102dc57600080fd5b50610311600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061097c565b005b34801561031f57600080fd5b506103426004803603810190808035600019169060200190929190505050610a41565b604051808215151515815260200191505060405180910390f35b34801561036857600080fd5b50610371610b40565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b1578082015181840152602081019050610396565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103f857600080fd5b50610453600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b79565b60405180826000191660001916815260200191505060405180910390f35b34801561047d57600080fd5b506104c06004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610be5565b604051808215151515815260200191505060405180910390f35b3480156104e657600080fd5b5061050560048036038101908080359060200190929190505050610c14565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055357600080fd5b506105ae600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c52565b005b3480156105bc57600080fd5b506105df6004803603810190808035600019169060200190929190505050610f5f565b604051808215151515815260200191505060405180910390f35b34801561060557600080fd5b5061060e610f7f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561064e578082015181840152602081019050610633565b50505050905090810190601f16801561067b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b7fe318b52b0000000000000000000000000000000000000000000000000000000081565b60008083518360ff16111515156106c357600080fd5b60028360ff16101515156106d657600080fd5b6106de610fb8565b600091505b83518210156107ea5783828151811015156106fa57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561072c57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561078557600080fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081806001019250506106e3565b8360029080519060200190610800929190611042565b5082600160146101000a81548160ff021916908360ff16021790555050505050565b600160149054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156108d357600080fd5b60046000826000191660001916815260200190815260200160002060009054906101000a900460ff1615151561090857600080fd5b600160056000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109d857600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156109fe57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b600280549050811015610b34576005600085600019166000191681526020019081526020016000206000600283815481101515610a8357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b045781806001019250505b600160149054906101000a900460ff1660ff16821415610b275760019250610b39565b8080600101915050610a4a565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b602083101515610bb15780518252602082019150602081019050602083039250610b8c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600281815481101515610c2357fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610cad57600080fd5b602083015191507fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515610d2057600080fd5b610d2983610b79565b905060046000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610d6057600080fd5b610d6981610a41565b1515610d7457600080fd5b600160046000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008660006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e8557fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610ec5578082015181840152602081019050610eaa565b50505050905090810190601f168015610ef25780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610f1457600080fd5b505af1158015610f28573d6000803e3d6000fd5b505050506040513d6020811015610f3e57600080fd5b81019080805190602001909291905050501515610f5a57600080fd5b505050565b60046020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610fff57600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b8280548282559060005260206000209081019282156110bb579160200282015b828111156110ba5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190611062565b5b5090506110c891906110cc565b5090565b61110c91905b8082111561110857600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016110d2565b5090565b905600a165627a7a723058201123dfa8605844d9977e93c4ec8232b4cd0c983832a7164c449e76402ee39bd50029", - "deployedBytecode": "0x6080604052600436106100db576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806336749c1a146100e05780633cf5b3091461014957806342cde4e8146101bc578063481c6a75146101ed57806368125a1b1461024457806379716e431461029f5780637de7edef146102d05780639ca89d0d14610313578063a3f4df7e1461035c578063ae68b056146103ec578063b79ffaff14610471578063ce146828146104da578063d2740c7614610547578063e52cb36a146105b0578063ffa1ad74146105f9575b600080fd5b3480156100ec57600080fd5b506100f5610689565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b34801561015557600080fd5b506101ba60048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff1690602001909291905050506106ad565b005b3480156101c857600080fd5b506101d1610822565b604051808260ff1660ff16815260200191505060405180910390f35b3480156101f957600080fd5b50610202610835565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561025057600080fd5b50610285600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061085b565b604051808215151515815260200191505060405180910390f35b3480156102ab57600080fd5b506102ce600480360381019080803560001916906020019092919050505061087b565b005b3480156102dc57600080fd5b50610311600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061097c565b005b34801561031f57600080fd5b506103426004803603810190808035600019169060200190929190505050610a41565b604051808215151515815260200191505060405180910390f35b34801561036857600080fd5b50610371610b40565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b1578082015181840152602081019050610396565b50505050905090810190601f1680156103de5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103f857600080fd5b50610453600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b79565b60405180826000191660001916815260200191505060405180910390f35b34801561047d57600080fd5b506104c06004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610be5565b604051808215151515815260200191505060405180910390f35b3480156104e657600080fd5b5061050560048036038101908080359060200190929190505050610c14565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055357600080fd5b506105ae600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610c52565b005b3480156105bc57600080fd5b506105df6004803603810190808035600019169060200190929190505050610f5f565b604051808215151515815260200191505060405180910390f35b34801561060557600080fd5b5061060e610f7f565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561064e578082015181840152602081019050610633565b50505050905090810190601f16801561067b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b7fe318b52b0000000000000000000000000000000000000000000000000000000081565b60008083518360ff16111515156106c357600080fd5b60028360ff16101515156106d657600080fd5b6106de610fb8565b600091505b83518210156107ea5783828151811015156106fa57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561072c57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561078557600080fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081806001019250506106e3565b8360029080519060200190610800929190611042565b5082600160146101000a81548160ff021916908360ff16021790555050505050565b600160149054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156108d357600080fd5b60046000826000191660001916815260200190815260200160002060009054906101000a900460ff1615151561090857600080fd5b600160056000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109d857600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156109fe57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b600280549050811015610b34576005600085600019166000191681526020019081526020016000206000600283815481101515610a8357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b045781806001019250505b600160149054906101000a900460ff1660ff16821415610b275760019250610b39565b8080600101915050610a4a565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b602083101515610bb15780518252602082019150602081019050602083039250610b8c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600281815481101515610c2357fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610cad57600080fd5b602083015191507fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141515610d2057600080fd5b610d2983610b79565b905060046000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610d6057600080fd5b610d6981610a41565b1515610d7457600080fd5b600160046000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008660006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e8557fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610ec5578082015181840152602081019050610eaa565b50505050905090810190601f168015610ef25780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610f1457600080fd5b505af1158015610f28573d6000803e3d6000fd5b505050506040513d6020811015610f3e57600080fd5b81019080805190602001909291905050501515610f5a57600080fd5b505050565b60046020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610fff57600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b8280548282559060005260206000209081019282156110bb579160200282015b828111156110ba5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190611062565b5b5090506110c891906110cc565b5090565b61110c91905b8082111561110857600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055506001016110d2565b5090565b905600a165627a7a723058201123dfa8605844d9977e93c4ec8232b4cd0c983832a7164c449e76402ee39bd50029", - "sourceMap": "306:3542:12:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;306:3542:12;;;;;;;", - "deployedSourceMap": "306:3542:12:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;459:72;;8:9:-1;5:2;;;30:1;27;20:12;5:2;459:72:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1253:494;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1253:494:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;538:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;538:22:12;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:5;;;;;;;;;;;;;;;;;;;;;;;;;;;661:41:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;661:41:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1860:181;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1860:181:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:208:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;3182:405:12;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3182:405:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;353:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:54:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;353:54:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3716:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3716:130:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;905:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;905:65:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;566:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;566:24:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:776;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2245:776:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;770:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;770:43:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;413:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;413:40:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;413:40:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;459:72;;;:::o;1253:494::-;1476:9;1531:14;1357:8;:15;1343:10;:29;;;;1335:38;;;;;;;;1405:1;1391:10;:15;;;;1383:24;;;;;;;;1417:12;:10;:12::i;:::-;1488:1;1476:13;;1471:210;1495:8;:15;1491:1;:19;1471:210;;;1548:8;1557:1;1548:11;;;;;;;;;;;;;;;;;;1531:28;;1591:1;1581:6;:11;;;;1573:20;;;;;;;;1616:8;:16;1625:6;1616:16;;;;;;;;;;;;;;;;;;;;;;;;;1615:17;1607:26;;;;;;;;1666:4;1647:8;:16;1656:6;1647:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;1512:3;;;;;;;1471:210;;;1700:8;1690:7;:18;;;;;;;;;;;;:::i;:::-;;1730:10;1718:9;;:22;;;;;;;;;;;;;;;;;;1253:494;;;;:::o;538:22::-;;;;;;;;;;;;;:::o;262:28:5:-;;;;;;;;;;;;;:::o;661:41:12:-;;;;;;;;;;;;;;;;;;;;;;:::o;1860:181::-;1017:8;:20;1026:10;1017:20;;;;;;;;;;;;;;;;;;;;;;;;;1009:29;;;;;;;;1963:10;:20;1974:8;1963:20;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:21;1954:30;;;;;;;;2030:4;1994:11;:21;2006:8;1994:21;;;;;;;;;;;;;;;;;:33;2016:10;1994:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1860:181;:::o;626:208:4:-;359:7:5;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;791:1:4;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o;3182:405:12:-;3283:4;3303:25;3343:9;3355:1;3343:13;;3338:221;3362:7;:14;;;;3358:1;:18;3338:221;;;3401:11;:21;3413:8;3401:21;;;;;;;;;;;;;;;;;:33;3423:7;3431:1;3423:10;;;;;;;;;;;;;;;;;;;;;;;;;;;3401:33;;;;;;;;;;;;;;;;;;;;;;;;;3397:74;;;3452:19;;;;;;;3397:74;3510:9;;;;;;;;;;;3489:30;;:17;:30;3485:63;;;3544:4;3537:11;;;;3485:63;3378:3;;;;;;;3338:221;;;3575:5;3568:12;;3182:405;;;;;;:::o;353:54::-;;;;;;;;;;;;;;;;;;;;:::o;3716:130::-;3794:7;3834:4;3824:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3824:15:12;;;;;;;;;;;;;;;;3817:22;;3716:130;;;:::o;905:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;566:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2245:776::-;2485:25;2744:16;2381:8;:20;2390:10;2381:20;;;;;;;;;;;;;;;;;;;;;;;;;2373:29;;;;;;;;2645:4;2639;2635:15;2629:22;2607:44;;2700:33;2678:55;;;:18;:55;;;;2670:64;;;;;;;;2763:17;2775:4;2763:11;:17::i;:::-;2744:36;;2799:10;:20;2810:8;2799:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2798:21;2790:30;;;;;;;;2838:38;2867:8;2838:28;:38::i;:::-;2830:47;;;;;;;;2910:4;2887:10;:20;2898:8;2887:20;;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;2932:7;;;;;;;;;;;:33;;;2974:7;;;;;;;;;;;2984:1;2987:4;2993:19;2932:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2932:81:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2932:81:12;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2932:81:12;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2932:81:12;;;;;;;;;;;;;;;;2924:90;;;;;;;;2245:776;;;:::o;770:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;413:40::-;;;;;;;;;;;;;;;;;;;;:::o;392:268:5:-;606:1;594:7;;;;;;;;;;;586:21;;;578:30;;;;;;;;642:10;618:7;;:35;;;;;;;;;;;;;;;;;;392:268::o;306:3542:12:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity 0.4.23;\nimport \"../Enum.sol\";\nimport \"../Module.sol\";\nimport \"../ModuleManager.sol\";\nimport \"../OwnerManager.sol\";\n\n\n/// @title Social Recovery Module - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n/// @author Stefan George - \ncontract SocialRecoveryModule is Module {\n\n string public constant NAME = \"Social Recovery Module\";\n string public constant VERSION = \"0.0.1\";\n bytes4 public constant REPLACE_OWNER_FUNCTION_IDENTIFIER = hex\"e318b52b\";\n\n uint8 public threshold;\n address[] public friends;\n\n // isFriend mapping maps friend's address to friend status.\n mapping (address => bool) public isFriend;\n // isExecuted mapping maps data hash to execution status.\n mapping (bytes32 => bool) public isExecuted;\n // isConfirmed mapping maps data hash to friend's address to confirmation status.\n mapping (bytes32 => mapping (address => bool)) public isConfirmed;\n\n modifier onlyFriend() {\n require(isFriend[msg.sender]);\n _;\n }\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _friends List of friends' addresses.\n /// @param _threshold Required number of friends to confirm replacement.\n function setup(address[] _friends, uint8 _threshold)\n public\n {\n require(_threshold <= _friends.length);\n require(_threshold >= 2);\n setManager();\n // Set allowed friends.\n for (uint256 i = 0; i < _friends.length; i++) {\n address friend = _friends[i];\n require(friend != 0);\n require(!isFriend[friend]);\n isFriend[friend] = true;\n }\n friends = _friends;\n threshold = _threshold;\n }\n\n /// @dev Allows a friend to confirm a Safe transaction.\n /// @param dataHash Safe transaction hash.\n function confirmTransaction(bytes32 dataHash)\n public\n onlyFriend\n {\n require(!isExecuted[dataHash]);\n isConfirmed[dataHash][msg.sender] = true;\n }\n\n /// @dev Returns if Safe transaction is a valid owner replacement transaction.\n /// @param data Encoded owner replacement transaction.\n /// @return Returns if transaction can be executed.\n function recoverAccess(bytes data)\n public\n {\n // Only friends are allowed to execute the replacement.\n require(isFriend[msg.sender]);\n // Validate that transaction is a owner replacement transaction.\n bytes4 functionIdentifier;\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n functionIdentifier := mload(add(data, 0x20))\n }\n require(functionIdentifier == REPLACE_OWNER_FUNCTION_IDENTIFIER);\n bytes32 dataHash = getDataHash(data);\n require(!isExecuted[dataHash]);\n require(isConfirmedByRequiredFriends(dataHash));\n isExecuted[dataHash] = true;\n require(manager.execTransactionFromModule(address(manager), 0, data, Enum.Operation.Call));\n }\n\n /// @dev Returns if Safe transaction is a valid owner replacement transaction.\n /// @param dataHash Data hash.\n /// @return Confirmation status.\n function isConfirmedByRequiredFriends(bytes32 dataHash)\n public\n view\n returns (bool)\n {\n uint256 confirmationCount;\n for (uint256 i = 0; i < friends.length; i++) {\n if (isConfirmed[dataHash][friends[i]])\n confirmationCount++;\n if (confirmationCount == threshold)\n return true;\n }\n return false;\n }\n\n /// @dev Returns hash of data encoding owner replacement.\n /// @param data Data payload.\n /// @return Data hash.\n function getDataHash(bytes data)\n public\n view\n returns (bytes32)\n {\n return keccak256(data);\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50611171806100206000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633cf5b309146100d557806342cde4e814610148578063481c6a751461017957806368125a1b146101d057806377231eaa1461022b57806379716e43146102ae5780637de7edef146102df5780639ca89d0d14610322578063a3f4df7e1461036b578063ae68b056146103fb578063b79ffaff14610480578063ce146828146104e9578063e52cb36a14610556578063ffa1ad741461059f575b600080fd5b3480156100e157600080fd5b5061014660048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff16906020019092919050505061062f565b005b34801561015457600080fd5b5061015d6107a4565b604051808260ff1660ff16815260200191505060405180910390f35b34801561018557600080fd5b5061018e6107b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101dc57600080fd5b50610211600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107dd565b604051808215151515815260200191505060405180910390f35b34801561023757600080fd5b506102ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107fd565b005b3480156102ba57600080fd5b506102dd6004803603810190808035600019169060200190929190505050610bbe565b005b3480156102eb57600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cbf565b005b34801561032e57600080fd5b506103516004803603810190808035600019169060200190929190505050610d84565b604051808215151515815260200191505060405180910390f35b34801561037757600080fd5b50610380610e83565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103c05780820151818401526020810190506103a5565b50505050905090810190601f1680156103ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561040757600080fd5b50610462600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ebc565b60405180826000191660001916815260200191505060405180910390f35b34801561048c57600080fd5b506104cf6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f28565b604051808215151515815260200191505060405180910390f35b3480156104f557600080fd5b5061051460048036038101908080359060200190929190505050610f57565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561056257600080fd5b506105856004803603810190808035600019169060200190929190505050610f95565b604051808215151515815260200191505060405180910390f35b3480156105ab57600080fd5b506105b4610fb5565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105f45780820151818401526020810190506105d9565b50505050905090810190601f1680156106215780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008083518360ff161115151561064557600080fd5b60028360ff161015151561065857600080fd5b610660610fee565b600091505b835182101561076c57838281518110151561067c57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141515156106ae57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561070757600080fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610665565b8360029080519060200190610782929190611078565b5082600160146101000a81548160ff021916908360ff16021790555050505050565b600160149054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b60606000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561085957600080fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050915061098682610ebc565b905060046000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156109bd57600080fd5b6109c681610d84565b15156109d157600080fd5b600160046000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ae257fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610b22578082015181840152602081019050610b07565b50505050905090810190601f168015610b4f5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b7157600080fd5b505af1158015610b85573d6000803e3d6000fd5b505050506040513d6020811015610b9b57600080fd5b81019080805190602001909291905050501515610bb757600080fd5b5050505050565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c1657600080fd5b60046000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c4b57600080fd5b600160056000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d1b57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610d4157600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b600280549050811015610e77576005600085600019166000191681526020019081526020016000206000600283815481101515610dc657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e475781806001019250505b600160149054906101000a900460ff1660ff16821415610e6a5760019250610e7c565b8080600101915050610d8d565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b602083101515610ef45780518252602082019150602081019050602083039250610ecf565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600281815481101515610f6657fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561103557600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b8280548282559060005260206000209081019282156110f1579160200282015b828111156110f05782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190611098565b5b5090506110fe9190611102565b5090565b61114291905b8082111561113e57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611108565b5090565b905600a165627a7a7230582016bbe219e7ccae5c600c8f48a1fc8b74cff478e1cbbcf8be80a150f855d6eb800029", + "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633cf5b309146100d557806342cde4e814610148578063481c6a751461017957806368125a1b146101d057806377231eaa1461022b57806379716e43146102ae5780637de7edef146102df5780639ca89d0d14610322578063a3f4df7e1461036b578063ae68b056146103fb578063b79ffaff14610480578063ce146828146104e9578063e52cb36a14610556578063ffa1ad741461059f575b600080fd5b3480156100e157600080fd5b5061014660048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff16906020019092919050505061062f565b005b34801561015457600080fd5b5061015d6107a4565b604051808260ff1660ff16815260200191505060405180910390f35b34801561018557600080fd5b5061018e6107b7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101dc57600080fd5b50610211600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107dd565b604051808215151515815260200191505060405180910390f35b34801561023757600080fd5b506102ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107fd565b005b3480156102ba57600080fd5b506102dd6004803603810190808035600019169060200190929190505050610bbe565b005b3480156102eb57600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610cbf565b005b34801561032e57600080fd5b506103516004803603810190808035600019169060200190929190505050610d84565b604051808215151515815260200191505060405180910390f35b34801561037757600080fd5b50610380610e83565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103c05780820151818401526020810190506103a5565b50505050905090810190601f1680156103ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561040757600080fd5b50610462600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ebc565b60405180826000191660001916815260200191505060405180910390f35b34801561048c57600080fd5b506104cf6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f28565b604051808215151515815260200191505060405180910390f35b3480156104f557600080fd5b5061051460048036038101908080359060200190929190505050610f57565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561056257600080fd5b506105856004803603810190808035600019169060200190929190505050610f95565b604051808215151515815260200191505060405180910390f35b3480156105ab57600080fd5b506105b4610fb5565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105f45780820151818401526020810190506105d9565b50505050905090810190601f1680156106215780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008083518360ff161115151561064557600080fd5b60028360ff161015151561065857600080fd5b610660610fee565b600091505b835182101561076c57838281518110151561067c57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141515156106ae57600080fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561070757600080fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610665565b8360029080519060200190610782929190611078565b5082600160146101000a81548160ff021916908360ff16021790555050505050565b600160149054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b60606000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561085957600080fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050915061098682610ebc565b905060046000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156109bd57600080fd5b6109c681610d84565b15156109d157600080fd5b600160046000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ae257fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610b22578082015181840152602081019050610b07565b50505050905090810190601f168015610b4f5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b7157600080fd5b505af1158015610b85573d6000803e3d6000fd5b505050506040513d6020811015610b9b57600080fd5b81019080805190602001909291905050501515610bb757600080fd5b5050505050565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c1657600080fd5b60046000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c4b57600080fd5b600160056000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d1b57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610d4157600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b600280549050811015610e77576005600085600019166000191681526020019081526020016000206000600283815481101515610dc657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e475781806001019250505b600160149054906101000a900460ff1660ff16821415610e6a5760019250610e7c565b8080600101915050610d8d565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b602083101515610ef45780518252602082019150602081019050602083039250610ecf565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600281815481101515610f6657fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561103557600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b8280548282559060005260206000209081019282156110f1579160200282015b828111156110f05782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190611098565b5b5090506110fe9190611102565b5090565b61114291905b8082111561113e57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611108565b5090565b905600a165627a7a7230582016bbe219e7ccae5c600c8f48a1fc8b74cff478e1cbbcf8be80a150f855d6eb800029", + "sourceMap": "306:3426:18:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;306:3426:18;;;;;;;", + "deployedSourceMap": "306:3426:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1175:494;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1175:494:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;460:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;460:22:18;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;583:41:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;583:41:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2296:609;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2296:609:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1782:181;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1782:181:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:208:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;3066:405:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3066:405:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;353:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:54:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;353:54:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3600:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3600:130:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:65:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:24:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;692:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;692:43:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;413:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;413:40:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;413:40:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1175:494;1398:9;1453:14;1279:8;:15;1265:10;:29;;;;1257:38;;;;;;;;1327:1;1313:10;:15;;;;1305:24;;;;;;;;1339:12;:10;:12::i;:::-;1410:1;1398:13;;1393:210;1417:8;:15;1413:1;:19;1393:210;;;1470:8;1479:1;1470:11;;;;;;;;;;;;;;;;;;1453:28;;1513:1;1503:6;:11;;;;1495:20;;;;;;;;1538:8;:16;1547:6;1538:16;;;;;;;;;;;;;;;;;;;;;;;;;1537:17;1529:26;;;;;;;;1588:4;1569:8;:16;1578:6;1569:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;1434:3;;;;;;;1393:210;;;1622:8;1612:7;:18;;;;;;;;;;;;:::i;:::-;;1652:10;1640:9;;:22;;;;;;;;;;;;;;;;;;1175:494;;;;:::o;460:22::-;;;;;;;;;;;;;:::o;262:28:7:-;;;;;;;;;;;;;:::o;583:41:18:-;;;;;;;;;;;;;;;;;;;;;;:::o;2296:609::-;2506:17;2628:16;2475:8;:20;2484:10;2475:20;;;;;;;;;;;;;;;;;;;;;;;;;2467:29;;;;;;;;2588:9;2599:8;2609;2526:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2526:92:18;;;;;;;38:4:-1;29:7;25:18;67:10;61:17;96:58;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2526:92:18;2506:112;;2647:17;2659:4;2647:11;:17::i;:::-;2628:36;;2683:10;:20;2694:8;2683:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2682:21;2674:30;;;;;;;;2722:38;2751:8;2722:28;:38::i;:::-;2714:47;;;;;;;;2794:4;2771:10;:20;2782:8;2771:20;;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;2816:7;;;;;;;;;;;:33;;;2858:7;;;;;;;;;;;2868:1;2871:4;2877:19;2816:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2816:81:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2816:81:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2816:81:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2816:81:18;;;;;;;;;;;;;;;;2808:90;;;;;;;;2296:609;;;;;:::o;1782:181::-;939:8;:20;948:10;939:20;;;;;;;;;;;;;;;;;;;;;;;;;931:29;;;;;;;;1885:10;:20;1896:8;1885:20;;;;;;;;;;;;;;;;;;;;;;;;;;;1884:21;1876:30;;;;;;;;1952:4;1916:11;:21;1928:8;1916:21;;;;;;;;;;;;;;;;;:33;1938:10;1916:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1782:181;:::o;626:208:5:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;791:1:5;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o;3066:405:18:-;3167:4;3187:25;3227:9;3239:1;3227:13;;3222:221;3246:7;:14;;;;3242:1;:18;3222:221;;;3285:11;:21;3297:8;3285:21;;;;;;;;;;;;;;;;;:33;3307:7;3315:1;3307:10;;;;;;;;;;;;;;;;;;;;;;;;;;;3285:33;;;;;;;;;;;;;;;;;;;;;;;;;3281:74;;;3336:19;;;;;;;3281:74;3394:9;;;;;;;;;;;3373:30;;:17;:30;3369:63;;;3428:4;3421:11;;;;3369:63;3262:3;;;;;;;3222:221;;;3459:5;3452:12;;3066:405;;;;;;:::o;353:54::-;;;;;;;;;;;;;;;;;;;;:::o;3600:130::-;3678:7;3718:4;3708:15;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3708:15:18;;;;;;;;;;;;;;;;3701:22;;3600:130;;;:::o;827:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;488:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;692:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;413:40::-;;;;;;;;;;;;;;;;;;;;:::o;392:268:7:-;606:1;594:7;;;;;;;;;;;586:21;;;578:30;;;;;;;;642:10;618:7;;:35;;;;;;;;;;;;;;;;;;392:268::o;306:3426:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"../Enum.sol\";\nimport \"../Module.sol\";\nimport \"../ModuleManager.sol\";\nimport \"../OwnerManager.sol\";\n\n\n/// @title Social Recovery Module - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n/// @author Stefan George - \ncontract SocialRecoveryModule is Module {\n\n string public constant NAME = \"Social Recovery Module\";\n string public constant VERSION = \"0.0.1\";\n\n uint8 public threshold;\n address[] public friends;\n\n // isFriend mapping maps friend's address to friend status.\n mapping (address => bool) public isFriend;\n // isExecuted mapping maps data hash to execution status.\n mapping (bytes32 => bool) public isExecuted;\n // isConfirmed mapping maps data hash to friend's address to confirmation status.\n mapping (bytes32 => mapping (address => bool)) public isConfirmed;\n\n modifier onlyFriend() {\n require(isFriend[msg.sender]);\n _;\n }\n\n /// @dev Setup function sets initial storage of contract.\n /// @param _friends List of friends' addresses.\n /// @param _threshold Required number of friends to confirm replacement.\n function setup(address[] _friends, uint8 _threshold)\n public\n {\n require(_threshold <= _friends.length);\n require(_threshold >= 2);\n setManager();\n // Set allowed friends.\n for (uint256 i = 0; i < _friends.length; i++) {\n address friend = _friends[i];\n require(friend != 0);\n require(!isFriend[friend]);\n isFriend[friend] = true;\n }\n friends = _friends;\n threshold = _threshold;\n }\n\n /// @dev Allows a friend to confirm a Safe transaction.\n /// @param dataHash Safe transaction hash.\n function confirmTransaction(bytes32 dataHash)\n public\n onlyFriend\n {\n require(!isExecuted[dataHash]);\n isConfirmed[dataHash][msg.sender] = true;\n }\n\n /// @dev Returns if Safe transaction is a valid owner replacement transaction.\n /// @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n /// @param oldOwner Owner address to be replaced.\n /// @param newOwner New owner address.\n /// @return Returns if transaction can be executed.\n function recoverAccess(address prevOwner, address oldOwner, address newOwner)\n public\n {\n // Only friends are allowed to execute the replacement.\n require(isFriend[msg.sender]);\n bytes memory data = abi.encodeWithSignature(\"swapOwner(address,address,address)\", prevOwner, oldOwner, newOwner);\n bytes32 dataHash = getDataHash(data);\n require(!isExecuted[dataHash]);\n require(isConfirmedByRequiredFriends(dataHash));\n isExecuted[dataHash] = true;\n require(manager.execTransactionFromModule(address(manager), 0, data, Enum.Operation.Call));\n }\n\n /// @dev Returns if Safe transaction is a valid owner replacement transaction.\n /// @param dataHash Data hash.\n /// @return Confirmation status.\n function isConfirmedByRequiredFriends(bytes32 dataHash)\n public\n view\n returns (bool)\n {\n uint256 confirmationCount;\n for (uint256 i = 0; i < friends.length; i++) {\n if (isConfirmed[dataHash][friends[i]])\n confirmationCount++;\n if (confirmationCount == threshold)\n return true;\n }\n return false;\n }\n\n /// @dev Returns hash of data encoding owner replacement.\n /// @param data Data payload.\n /// @return Data hash.\n function getDataHash(bytes data)\n public\n pure\n returns (bytes32)\n {\n return keccak256(data);\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", "exportedSymbols": { "SocialRecoveryModule": [ - 2035 + 2234 ] }, - "id": 2036, + "id": 2235, "nodeType": "SourceUnit", "nodes": [ { - "id": 1777, + "id": 1975, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:12" + "src": "0:23:18" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 1778, + "id": 1976, "nodeType": "ImportDirective", - "scope": 2036, - "sourceUnit": 7, - "src": "24:21:12", + "scope": 2235, + "sourceUnit": 31, + "src": "24:21:18", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 1779, + "id": 1977, "nodeType": "ImportDirective", - "scope": 2036, - "sourceUnit": 622, - "src": "46:23:12", + "scope": 2235, + "sourceUnit": 751, + "src": "46:23:18", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 1780, + "id": 1978, "nodeType": "ImportDirective", - "scope": 2036, - "sourceUnit": 972, - "src": "70:30:12", + "scope": 2235, + "sourceUnit": 1101, + "src": "70:30:18", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 1781, + "id": 1979, "nodeType": "ImportDirective", - "scope": 2036, - "sourceUnit": 1344, - "src": "101:29:12", + "scope": 2235, + "sourceUnit": 1473, + "src": "101:29:18", "symbolAliases": [], "unitAlias": "" }, @@ -326,46 +320,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1782, + "id": 1980, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "339:6:12", + "referencedDeclaration": 750, + "src": "339:6:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, - "id": 1783, + "id": 1981, "nodeType": "InheritanceSpecifier", - "src": "339:6:12" + "src": "339:6:18" } ], "contractDependencies": [ - 580, - 621, - 1359 + 652, + 750, + 1619 ], "contractKind": "contract", "documentation": "@title Social Recovery Module - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n @author Stefan George - ", "fullyImplemented": true, - "id": 2035, + "id": 2234, "linearizedBaseContracts": [ - 2035, - 621, - 580, - 1359 + 2234, + 750, + 652, + 1619 ], "name": "SocialRecoveryModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 1786, + "id": 1984, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2035, - "src": "353:54:12", + "scope": 2234, + "src": "353:54:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -373,10 +367,10 @@ "typeString": "string" }, "typeName": { - "id": 1784, + "id": 1982, "name": "string", "nodeType": "ElementaryTypeName", - "src": "353:6:12", + "src": "353:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -385,14 +379,14 @@ "value": { "argumentTypes": null, "hexValue": "536f6369616c205265636f76657279204d6f64756c65", - "id": 1785, + "id": 1983, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "383:24:12", + "src": "383:24:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8f499aea563eae5544b16c9123d6c7c8537a7d9dd86296aa60c65de194207230", @@ -404,11 +398,11 @@ }, { "constant": true, - "id": 1789, + "id": 1987, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2035, - "src": "413:40:12", + "scope": 2234, + "src": "413:40:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -416,10 +410,10 @@ "typeString": "string" }, "typeName": { - "id": 1787, + "id": 1985, "name": "string", "nodeType": "ElementaryTypeName", - "src": "413:6:12", + "src": "413:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -428,14 +422,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 1788, + "id": 1986, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "446:7:12", + "src": "446:7:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -445,56 +439,13 @@ }, "visibility": "public" }, - { - "constant": true, - "id": 1792, - "name": "REPLACE_OWNER_FUNCTION_IDENTIFIER", - "nodeType": "VariableDeclaration", - "scope": 2035, - "src": "459:72:12", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1790, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "459:6:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "e318b52b", - "id": 1791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "518:13:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_df42753442dae44b262788763363a184bfb8d0df593d5073d67844ce4b3a2d8b", - "typeString": "literal_string (contains invalid UTF-8 sequence at position 2)" - }, - "value": null - }, - "visibility": "public" - }, { "constant": false, - "id": 1794, + "id": 1989, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 2035, - "src": "538:22:12", + "scope": 2234, + "src": "460:22:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -502,10 +453,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1793, + "id": 1988, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "538:5:12", + "src": "460:5:18", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -516,11 +467,11 @@ }, { "constant": false, - "id": 1797, + "id": 1992, "name": "friends", "nodeType": "VariableDeclaration", - "scope": 2035, - "src": "566:24:12", + "scope": 2234, + "src": "488:24:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -529,19 +480,19 @@ }, "typeName": { "baseType": { - "id": 1795, + "id": 1990, "name": "address", "nodeType": "ElementaryTypeName", - "src": "566:7:12", + "src": "488:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1796, + "id": 1991, "length": null, "nodeType": "ArrayTypeName", - "src": "566:9:12", + "src": "488:9:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -552,11 +503,11 @@ }, { "constant": false, - "id": 1801, + "id": 1996, "name": "isFriend", "nodeType": "VariableDeclaration", - "scope": 2035, - "src": "661:41:12", + "scope": 2234, + "src": "583:41:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -564,28 +515,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 1800, + "id": 1995, "keyType": { - "id": 1798, + "id": 1993, "name": "address", "nodeType": "ElementaryTypeName", - "src": "670:7:12", + "src": "592:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "661:25:12", + "src": "583:25:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 1799, + "id": 1994, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "681:4:12", + "src": "603:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -597,11 +548,11 @@ }, { "constant": false, - "id": 1805, + "id": 2000, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 2035, - "src": "770:43:12", + "scope": 2234, + "src": "692:43:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -609,28 +560,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 1804, + "id": 1999, "keyType": { - "id": 1802, + "id": 1997, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "779:7:12", + "src": "701:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "770:25:12", + "src": "692:25:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 1803, + "id": 1998, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "790:4:12", + "src": "712:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -642,11 +593,11 @@ }, { "constant": false, - "id": 1811, + "id": 2006, "name": "isConfirmed", "nodeType": "VariableDeclaration", - "scope": 2035, - "src": "905:65:12", + "scope": 2234, + "src": "827:65:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -654,46 +605,46 @@ "typeString": "mapping(bytes32 => mapping(address => bool))" }, "typeName": { - "id": 1810, + "id": 2005, "keyType": { - "id": 1806, + "id": 2001, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "914:7:12", + "src": "836:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "905:46:12", + "src": "827:46:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" }, "valueType": { - "id": 1809, + "id": 2004, "keyType": { - "id": 1807, + "id": 2002, "name": "address", "nodeType": "ElementaryTypeName", - "src": "934:7:12", + "src": "856:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "925:25:12", + "src": "847:25:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 1808, + "id": 2003, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "945:4:12", + "src": "867:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -706,9 +657,9 @@ }, { "body": { - "id": 1821, + "id": 2016, "nodeType": "Block", - "src": "999:57:12", + "src": "921:57:18", "statements": [ { "expression": { @@ -718,34 +669,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1814, + "id": 2009, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "1017:8:12", + "referencedDeclaration": 1996, + "src": "939:8:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1817, + "id": 2012, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1815, + "id": 2010, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "1026:3:12", + "referencedDeclaration": 2598, + "src": "948:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1816, + "id": 2011, "isConstant": false, "isLValue": false, "isPure": false, @@ -753,7 +704,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1026:10:12", + "src": "948:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -764,7 +715,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1017:20:12", + "src": "939:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -778,21 +729,21 @@ "typeString": "bool" } ], - "id": 1813, + "id": 2008, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1009:7:12", + "referencedDeclaration": 2601, + "src": "931:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1818, + "id": 2013, "isConstant": false, "isLValue": false, "isPure": false, @@ -800,41 +751,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1009:29:12", + "src": "931:29:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1819, + "id": 2014, "nodeType": "ExpressionStatement", - "src": "1009:29:12" + "src": "931:29:18" }, { - "id": 1820, + "id": 2015, "nodeType": "PlaceholderStatement", - "src": "1048:1:12" + "src": "970:1:18" } ] }, "documentation": null, - "id": 1822, + "id": 2017, "name": "onlyFriend", "nodeType": "ModifierDefinition", "parameters": { - "id": 1812, + "id": 2007, "nodeType": "ParameterList", "parameters": [], - "src": "996:2:12" + "src": "918:2:18" }, - "src": "977:79:12", + "src": "899:79:18", "visibility": "internal" }, { "body": { - "id": 1892, + "id": 2087, "nodeType": "Block", - "src": "1325:422:12", + "src": "1247:422:18", "statements": [ { "expression": { @@ -846,19 +797,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1834, + "id": 2029, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1831, + "id": 2026, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1827, - "src": "1343:10:12", + "referencedDeclaration": 2022, + "src": "1265:10:18", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -870,18 +821,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1832, + "id": 2027, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1825, - "src": "1357:8:12", + "referencedDeclaration": 2020, + "src": "1279:8:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1833, + "id": 2028, "isConstant": false, "isLValue": false, "isPure": false, @@ -889,13 +840,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1357:15:12", + "src": "1279:15:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1343:29:12", + "src": "1265:29:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -909,21 +860,21 @@ "typeString": "bool" } ], - "id": 1830, + "id": 2025, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1335:7:12", + "referencedDeclaration": 2601, + "src": "1257:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1835, + "id": 2030, "isConstant": false, "isLValue": false, "isPure": false, @@ -931,15 +882,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1335:38:12", + "src": "1257:38:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1836, + "id": 2031, "nodeType": "ExpressionStatement", - "src": "1335:38:12" + "src": "1257:38:18" }, { "expression": { @@ -951,19 +902,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1840, + "id": 2035, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1838, + "id": 2033, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1827, - "src": "1391:10:12", + "referencedDeclaration": 2022, + "src": "1313:10:18", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -974,14 +925,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 1839, + "id": 2034, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1405:1:12", + "src": "1327:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -989,7 +940,7 @@ }, "value": "2" }, - "src": "1391:15:12", + "src": "1313:15:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1003,21 +954,21 @@ "typeString": "bool" } ], - "id": 1837, + "id": 2032, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1383:7:12", + "referencedDeclaration": 2601, + "src": "1305:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1841, + "id": 2036, "isConstant": false, "isLValue": false, "isPure": false, @@ -1025,15 +976,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1383:24:12", + "src": "1305:24:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1842, + "id": 2037, "nodeType": "ExpressionStatement", - "src": "1383:24:12" + "src": "1305:24:18" }, { "expression": { @@ -1041,18 +992,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1843, + "id": 2038, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "1417:10:12", + "referencedDeclaration": 749, + "src": "1339:10:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1844, + "id": 2039, "isConstant": false, "isLValue": false, "isPure": false, @@ -1060,34 +1011,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1417:12:12", + "src": "1339:12:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1845, + "id": 2040, "nodeType": "ExpressionStatement", - "src": "1417:12:12" + "src": "1339:12:18" }, { "body": { - "id": 1882, + "id": 2077, "nodeType": "Block", - "src": "1517:164:12", + "src": "1439:164:18", "statements": [ { "assignments": [ - 1858 + 2053 ], "declarations": [ { "constant": false, - "id": 1858, + "id": 2053, "name": "friend", "nodeType": "VariableDeclaration", - "scope": 1893, - "src": "1531:14:12", + "scope": 2088, + "src": "1453:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1095,10 +1046,10 @@ "typeString": "address" }, "typeName": { - "id": 1857, + "id": 2052, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1531:7:12", + "src": "1453:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1108,31 +1059,31 @@ "visibility": "internal" } ], - "id": 1862, + "id": 2057, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1859, + "id": 2054, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1825, - "src": "1548:8:12", + "referencedDeclaration": 2020, + "src": "1470:8:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1861, + "id": 2056, "indexExpression": { "argumentTypes": null, - "id": 1860, + "id": 2055, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1847, - "src": "1557:1:12", + "referencedDeclaration": 2042, + "src": "1479:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1143,14 +1094,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1548:11:12", + "src": "1470:11:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1531:28:12" + "src": "1453:28:18" }, { "expression": { @@ -1162,19 +1113,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1866, + "id": 2061, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1864, + "id": 2059, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, - "src": "1581:6:12", + "referencedDeclaration": 2053, + "src": "1503:6:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1185,14 +1136,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1865, + "id": 2060, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1591:1:12", + "src": "1513:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1200,7 +1151,7 @@ }, "value": "0" }, - "src": "1581:11:12", + "src": "1503:11:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1214,21 +1165,21 @@ "typeString": "bool" } ], - "id": 1863, + "id": 2058, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1573:7:12", + "referencedDeclaration": 2601, + "src": "1495:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1867, + "id": 2062, "isConstant": false, "isLValue": false, "isPure": false, @@ -1236,15 +1187,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1573:20:12", + "src": "1495:20:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1868, + "id": 2063, "nodeType": "ExpressionStatement", - "src": "1573:20:12" + "src": "1495:20:18" }, { "expression": { @@ -1252,7 +1203,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1873, + "id": 2068, "isConstant": false, "isLValue": false, "isPure": false, @@ -1260,31 +1211,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1615:17:12", + "src": "1537:17:18", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1870, + "id": 2065, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "1616:8:12", + "referencedDeclaration": 1996, + "src": "1538:8:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1872, + "id": 2067, "indexExpression": { "argumentTypes": null, - "id": 1871, + "id": 2066, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, - "src": "1625:6:12", + "referencedDeclaration": 2053, + "src": "1547:6:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1295,7 +1246,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1616:16:12", + "src": "1538:16:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1314,21 +1265,21 @@ "typeString": "bool" } ], - "id": 1869, + "id": 2064, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1607:7:12", + "referencedDeclaration": 2601, + "src": "1529:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1874, + "id": 2069, "isConstant": false, "isLValue": false, "isPure": false, @@ -1336,20 +1287,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1607:26:12", + "src": "1529:26:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1875, + "id": 2070, "nodeType": "ExpressionStatement", - "src": "1607:26:12" + "src": "1529:26:18" }, { "expression": { "argumentTypes": null, - "id": 1880, + "id": 2075, "isConstant": false, "isLValue": false, "isPure": false, @@ -1358,26 +1309,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1876, + "id": 2071, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "1647:8:12", + "referencedDeclaration": 1996, + "src": "1569:8:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1878, + "id": 2073, "indexExpression": { "argumentTypes": null, - "id": 1877, + "id": 2072, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, - "src": "1656:6:12", + "referencedDeclaration": 2053, + "src": "1578:6:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1388,7 +1339,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1647:16:12", + "src": "1569:16:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1399,14 +1350,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1879, + "id": 2074, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1666:4:12", + "src": "1588:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1414,15 +1365,15 @@ }, "value": "true" }, - "src": "1647:23:12", + "src": "1569:23:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1881, + "id": 2076, "nodeType": "ExpressionStatement", - "src": "1647:23:12" + "src": "1569:23:18" } ] }, @@ -1432,19 +1383,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1853, + "id": 2048, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1850, + "id": 2045, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1847, - "src": "1491:1:12", + "referencedDeclaration": 2042, + "src": "1413:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1456,18 +1407,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1851, + "id": 2046, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1825, - "src": "1495:8:12", + "referencedDeclaration": 2020, + "src": "1417:8:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1852, + "id": 2047, "isConstant": false, "isLValue": false, "isPure": false, @@ -1475,31 +1426,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1495:15:12", + "src": "1417:15:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1491:19:12", + "src": "1413:19:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1883, + "id": 2078, "initializationExpression": { "assignments": [ - 1847 + 2042 ], "declarations": [ { "constant": false, - "id": 1847, + "id": 2042, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1893, - "src": "1476:9:12", + "scope": 2088, + "src": "1398:9:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1507,10 +1458,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1846, + "id": 2041, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1476:7:12", + "src": "1398:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1520,18 +1471,18 @@ "visibility": "internal" } ], - "id": 1849, + "id": 2044, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1848, + "id": 2043, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1488:1:12", + "src": "1410:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1540,12 +1491,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1476:13:12" + "src": "1398:13:18" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1855, + "id": 2050, "isConstant": false, "isLValue": false, "isPure": false, @@ -1553,15 +1504,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1512:3:12", + "src": "1434:3:18", "subExpression": { "argumentTypes": null, - "id": 1854, + "id": 2049, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1847, - "src": "1512:1:12", + "referencedDeclaration": 2042, + "src": "1434:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1572,29 +1523,29 @@ "typeString": "uint256" } }, - "id": 1856, + "id": 2051, "nodeType": "ExpressionStatement", - "src": "1512:3:12" + "src": "1434:3:18" }, "nodeType": "ForStatement", - "src": "1471:210:12" + "src": "1393:210:18" }, { "expression": { "argumentTypes": null, - "id": 1886, + "id": 2081, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1884, + "id": 2079, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1797, - "src": "1690:7:12", + "referencedDeclaration": 1992, + "src": "1612:7:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" @@ -1604,43 +1555,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1885, + "id": 2080, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1825, - "src": "1700:8:12", + "referencedDeclaration": 2020, + "src": "1622:8:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "src": "1690:18:12", + "src": "1612:18:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 1887, + "id": 2082, "nodeType": "ExpressionStatement", - "src": "1690:18:12" + "src": "1612:18:18" }, { "expression": { "argumentTypes": null, - "id": 1890, + "id": 2085, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1888, + "id": 2083, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1794, - "src": "1718:9:12", + "referencedDeclaration": 1989, + "src": "1640:9:18", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1650,31 +1601,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1889, + "id": 2084, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1827, - "src": "1730:10:12", + "referencedDeclaration": 2022, + "src": "1652:10:18", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "1718:22:12", + "src": "1640:22:18", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1891, + "id": 2086, "nodeType": "ExpressionStatement", - "src": "1718:22:12" + "src": "1640:22:18" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param _friends List of friends' addresses.\n @param _threshold Required number of friends to confirm replacement.", - "id": 1893, + "id": 2088, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1682,16 +1633,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 1828, + "id": 2023, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1825, + "id": 2020, "name": "_friends", "nodeType": "VariableDeclaration", - "scope": 1893, - "src": "1268:18:12", + "scope": 2088, + "src": "1190:18:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1700,19 +1651,19 @@ }, "typeName": { "baseType": { - "id": 1823, + "id": 2018, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1268:7:12", + "src": "1190:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1824, + "id": 2019, "length": null, "nodeType": "ArrayTypeName", - "src": "1268:9:12", + "src": "1190:9:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1723,11 +1674,11 @@ }, { "constant": false, - "id": 1827, + "id": 2022, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1893, - "src": "1288:16:12", + "scope": 2088, + "src": "1210:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1735,10 +1686,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1826, + "id": 2021, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1288:5:12", + "src": "1210:5:18", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1748,26 +1699,26 @@ "visibility": "internal" } ], - "src": "1267:38:12" + "src": "1189:38:18" }, "payable": false, "returnParameters": { - "id": 1829, + "id": 2024, "nodeType": "ParameterList", "parameters": [], - "src": "1325:0:12" + "src": "1247:0:18" }, - "scope": 2035, - "src": "1253:494:12", + "scope": 2234, + "src": "1175:494:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1916, + "id": 2111, "nodeType": "Block", - "src": "1944:97:12", + "src": "1866:97:18", "statements": [ { "expression": { @@ -1775,7 +1726,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1904, + "id": 2099, "isConstant": false, "isLValue": false, "isPure": false, @@ -1783,31 +1734,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1962:21:12", + "src": "1884:21:18", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1901, + "id": 2096, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "1963:10:12", + "referencedDeclaration": 2000, + "src": "1885:10:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 1903, + "id": 2098, "indexExpression": { "argumentTypes": null, - "id": 1902, + "id": 2097, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1895, - "src": "1974:8:12", + "referencedDeclaration": 2090, + "src": "1896:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1818,7 +1769,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1963:20:12", + "src": "1885:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1837,21 +1788,21 @@ "typeString": "bool" } ], - "id": 1900, + "id": 2095, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1954:7:12", + "referencedDeclaration": 2601, + "src": "1876:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1905, + "id": 2100, "isConstant": false, "isLValue": false, "isPure": false, @@ -1859,20 +1810,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1954:30:12", + "src": "1876:30:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1906, + "id": 2101, "nodeType": "ExpressionStatement", - "src": "1954:30:12" + "src": "1876:30:18" }, { "expression": { "argumentTypes": null, - "id": 1914, + "id": 2109, "isConstant": false, "isLValue": false, "isPure": false, @@ -1883,26 +1834,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1907, + "id": 2102, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1811, - "src": "1994:11:12", + "referencedDeclaration": 2006, + "src": "1916:11:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 1911, + "id": 2106, "indexExpression": { "argumentTypes": null, - "id": 1908, + "id": 2103, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1895, - "src": "2006:8:12", + "referencedDeclaration": 2090, + "src": "1928:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1913,29 +1864,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1994:21:12", + "src": "1916:21:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1912, + "id": 2107, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1909, + "id": 2104, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "2016:3:12", + "referencedDeclaration": 2598, + "src": "1938:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1910, + "id": 2105, "isConstant": false, "isLValue": false, "isPure": false, @@ -1943,7 +1894,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2016:10:12", + "src": "1938:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1954,7 +1905,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1994:33:12", + "src": "1916:33:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1965,14 +1916,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1913, + "id": 2108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2030:4:12", + "src": "1952:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1980,57 +1931,57 @@ }, "value": "true" }, - "src": "1994:40:12", + "src": "1916:40:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1915, + "id": 2110, "nodeType": "ExpressionStatement", - "src": "1994:40:12" + "src": "1916:40:18" } ] }, "documentation": "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash.", - "id": 1917, + "id": 2112, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1898, + "id": 2093, "modifierName": { "argumentTypes": null, - "id": 1897, + "id": 2092, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1822, - "src": "1929:10:12", + "referencedDeclaration": 2017, + "src": "1851:10:18", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1929:10:12" + "src": "1851:10:18" } ], "name": "confirmTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 1896, + "id": 2091, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1895, + "id": 2090, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 1917, - "src": "1888:16:12", + "scope": 2112, + "src": "1810:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2038,10 +1989,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1894, + "id": 2089, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1888:7:12", + "src": "1810:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2051,26 +2002,26 @@ "visibility": "internal" } ], - "src": "1887:18:12" + "src": "1809:18:18" }, "payable": false, "returnParameters": { - "id": 1899, + "id": 2094, "nodeType": "ParameterList", "parameters": [], - "src": "1944:0:12" + "src": "1866:0:18" }, - "scope": 2035, - "src": "1860:181:12", + "scope": 2234, + "src": "1782:181:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1978, + "id": 2177, "nodeType": "Block", - "src": "2299:722:12", + "src": "2393:512:18", "statements": [ { "expression": { @@ -2080,34 +2031,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1923, + "id": 2122, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "2381:8:12", + "referencedDeclaration": 1996, + "src": "2475:8:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1926, + "id": 2125, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1924, + "id": 2123, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "2390:3:12", + "referencedDeclaration": 2598, + "src": "2484:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1925, + "id": 2124, "isConstant": false, "isLValue": false, "isPure": false, @@ -2115,7 +2066,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2390:10:12", + "src": "2484:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2126,7 +2077,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2381:20:12", + "src": "2475:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2140,21 +2091,21 @@ "typeString": "bool" } ], - "id": 1922, + "id": 2121, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2373:7:12", + "referencedDeclaration": 2601, + "src": "2467:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1927, + "id": 2126, "isConstant": false, "isLValue": false, "isPure": false, @@ -2162,149 +2113,157 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2373:29:12", + "src": "2467:29:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1928, + "id": 2127, "nodeType": "ExpressionStatement", - "src": "2373:29:12" + "src": "2467:29:18" }, { - "assignments": [], + "assignments": [ + 2129 + ], "declarations": [ { "constant": false, - "id": 1930, - "name": "functionIdentifier", + "id": 2129, + "name": "data", "nodeType": "VariableDeclaration", - "scope": 1979, - "src": "2485:25:12", + "scope": 2178, + "src": "2506:17:18", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" }, "typeName": { - "id": 1929, - "name": "bytes4", + "id": 2128, + "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2485:6:12", + "src": "2506:5:18", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], - "id": 1931, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2485:25:12" - }, - { - "externalReferences": [ - { - "functionIdentifier": { - "declaration": 1930, - "isOffset": false, - "isSlot": false, - "src": "2607:18:12", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1919, - "isOffset": false, - "isSlot": false, - "src": "2639:4:12", - "valueSize": 1 - } - } - ], - "id": 1932, - "nodeType": "InlineAssembly", - "operations": "{\n functionIdentifier := mload(add(data, 0x20))\n}", - "src": "2584:93:12" - }, - { - "expression": { + "id": 2137, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 1936, + "hexValue": "737761704f776e657228616464726573732c616464726573732c6164647265737329", + "id": 2132, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "string", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1934, - "name": "functionIdentifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "2678:18:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1935, - "name": "REPLACE_OWNER_FUNCTION_IDENTIFIER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1792, - "src": "2700:33:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "2678:55:12", + "nodeType": "Literal", + "src": "2550:36:18", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", + "typeString": "literal_string \"swapOwner(address,address,address)\"" + }, + "value": "swapOwner(address,address,address)" + }, + { + "argumentTypes": null, + "id": 2133, + "name": "prevOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2114, + "src": "2588:9:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2134, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2116, + "src": "2599:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2135, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2118, + "src": "2609:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", + "typeString": "literal_string \"swapOwner(address,address,address)\"" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 1933, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2399, - 2400 - ], - "referencedDeclaration": 2399, - "src": "2670:7:12", + "expression": { + "argumentTypes": null, + "id": 2130, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2585, + "src": "2526:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2131, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2526:23:18", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 1937, + "id": 2136, "isConstant": false, "isLValue": false, "isPure": false, @@ -2312,28 +2271,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2670:64:12", + "src": "2526:92:18", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } }, - "id": 1938, - "nodeType": "ExpressionStatement", - "src": "2670:64:12" + "nodeType": "VariableDeclarationStatement", + "src": "2506:112:18" }, { "assignments": [ - 1940 + 2139 ], "declarations": [ { "constant": false, - "id": 1940, + "id": 2139, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 1979, - "src": "2744:16:12", + "scope": 2178, + "src": "2628:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2341,10 +2299,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1939, + "id": 2138, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2744:7:12", + "src": "2628:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2354,18 +2312,18 @@ "visibility": "internal" } ], - "id": 1944, + "id": 2143, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1942, + "id": 2141, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1919, - "src": "2775:4:12", + "referencedDeclaration": 2129, + "src": "2659:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2379,18 +2337,18 @@ "typeString": "bytes memory" } ], - "id": 1941, + "id": 2140, "name": "getDataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2763:11:12", + "referencedDeclaration": 2233, + "src": "2647:11:18", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) view returns (bytes32)" + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1943, + "id": 2142, "isConstant": false, "isLValue": false, "isPure": false, @@ -2398,14 +2356,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2763:17:12", + "src": "2647:17:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2744:36:12" + "src": "2628:36:18" }, { "expression": { @@ -2413,7 +2371,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1949, + "id": 2148, "isConstant": false, "isLValue": false, "isPure": false, @@ -2421,31 +2379,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2798:21:12", + "src": "2682:21:18", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1946, + "id": 2145, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "2799:10:12", + "referencedDeclaration": 2000, + "src": "2683:10:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 1948, + "id": 2147, "indexExpression": { "argumentTypes": null, - "id": 1947, + "id": 2146, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1940, - "src": "2810:8:12", + "referencedDeclaration": 2139, + "src": "2694:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2456,7 +2414,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2799:20:12", + "src": "2683:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2475,21 +2433,21 @@ "typeString": "bool" } ], - "id": 1945, + "id": 2144, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2790:7:12", + "referencedDeclaration": 2601, + "src": "2674:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1950, + "id": 2149, "isConstant": false, "isLValue": false, "isPure": false, @@ -2497,15 +2455,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2790:30:12", + "src": "2674:30:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1951, + "id": 2150, "nodeType": "ExpressionStatement", - "src": "2790:30:12" + "src": "2674:30:18" }, { "expression": { @@ -2516,12 +2474,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1954, + "id": 2153, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1940, - "src": "2867:8:12", + "referencedDeclaration": 2139, + "src": "2751:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2535,18 +2493,18 @@ "typeString": "bytes32" } ], - "id": 1953, + "id": 2152, "name": "isConfirmedByRequiredFriends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "2838:28:12", + "referencedDeclaration": 2221, + "src": "2722:28:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 1955, + "id": 2154, "isConstant": false, "isLValue": false, "isPure": false, @@ -2554,7 +2512,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2838:38:12", + "src": "2722:38:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2568,21 +2526,21 @@ "typeString": "bool" } ], - "id": 1952, + "id": 2151, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2830:7:12", + "referencedDeclaration": 2601, + "src": "2714:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1956, + "id": 2155, "isConstant": false, "isLValue": false, "isPure": false, @@ -2590,20 +2548,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2830:47:12", + "src": "2714:47:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1957, + "id": 2156, "nodeType": "ExpressionStatement", - "src": "2830:47:12" + "src": "2714:47:18" }, { "expression": { "argumentTypes": null, - "id": 1962, + "id": 2161, "isConstant": false, "isLValue": false, "isPure": false, @@ -2612,26 +2570,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1958, + "id": 2157, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "2887:10:12", + "referencedDeclaration": 2000, + "src": "2771:10:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 1960, + "id": 2159, "indexExpression": { "argumentTypes": null, - "id": 1959, + "id": 2158, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1940, - "src": "2898:8:12", + "referencedDeclaration": 2139, + "src": "2782:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2642,7 +2600,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2887:20:12", + "src": "2771:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2653,14 +2611,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1961, + "id": 2160, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2910:4:12", + "src": "2794:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2668,15 +2626,15 @@ }, "value": "true" }, - "src": "2887:27:12", + "src": "2771:27:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1963, + "id": 2162, "nodeType": "ExpressionStatement", - "src": "2887:27:12" + "src": "2771:27:18" }, { "expression": { @@ -2690,14 +2648,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1968, + "id": 2167, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "2974:7:12", + "referencedDeclaration": 717, + "src": "2858:7:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } } @@ -2705,24 +2663,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } ], - "id": 1967, + "id": 2166, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2966:7:12", + "src": "2850:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1969, + "id": 2168, "isConstant": false, "isLValue": false, "isPure": false, @@ -2730,7 +2688,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2966:16:12", + "src": "2850:16:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2739,14 +2697,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1970, + "id": 2169, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2984:1:12", + "src": "2868:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2756,12 +2714,12 @@ }, { "argumentTypes": null, - "id": 1971, + "id": 2170, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1919, - "src": "2987:4:12", + "referencedDeclaration": 2129, + "src": "2871:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2773,32 +2731,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1972, + "id": 2171, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "2993:4:12", + "referencedDeclaration": 30, + "src": "2877:4:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$6_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", "typeString": "type(contract Enum)" } }, - "id": 1973, + "id": 2172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "2993:14:12", + "referencedDeclaration": 29, + "src": "2877:14:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$5_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 1974, + "id": 2173, "isConstant": false, "isLValue": false, "isPure": true, @@ -2806,9 +2764,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2993:19:12", + "src": "2877:19:18", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } } @@ -2828,38 +2786,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 1965, + "id": 2164, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "2932:7:12", + "referencedDeclaration": 717, + "src": "2816:7:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } }, - "id": 1966, + "id": 2165, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 798, - "src": "2932:33:12", + "referencedDeclaration": 927, + "src": "2816:33:18", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 1975, + "id": 2174, "isConstant": false, "isLValue": false, "isPure": false, @@ -2867,7 +2825,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2932:81:12", + "src": "2816:81:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2881,21 +2839,21 @@ "typeString": "bool" } ], - "id": 1964, + "id": 2163, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2924:7:12", + "referencedDeclaration": 2601, + "src": "2808:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1976, + "id": 2175, "isConstant": false, "isLValue": false, "isPure": false, @@ -2903,20 +2861,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2924:90:12", + "src": "2808:90:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1977, + "id": 2176, "nodeType": "ExpressionStatement", - "src": "2924:90:12" + "src": "2808:90:18" } ] }, - "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param data Encoded owner replacement transaction.\n @return Returns if transaction can be executed.", - "id": 1979, + "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.\n @return Returns if transaction can be executed.", + "id": 2178, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2924,67 +2882,119 @@ "name": "recoverAccess", "nodeType": "FunctionDefinition", "parameters": { - "id": 1920, + "id": 2119, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1919, - "name": "data", + "id": 2114, + "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1979, - "src": "2268:10:12", + "scope": 2178, + "src": "2319:17:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 1918, - "name": "bytes", + "id": 2113, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "2268:5:12", + "src": "2319:7:18", "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2116, + "name": "oldOwner", + "nodeType": "VariableDeclaration", + "scope": 2178, + "src": "2338:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2338:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2118, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 2178, + "src": "2356:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2356:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "2267:12:12" + "src": "2318:55:18" }, "payable": false, "returnParameters": { - "id": 1921, + "id": 2120, "nodeType": "ParameterList", "parameters": [], - "src": "2299:0:12" + "src": "2393:0:18" }, - "scope": 2035, - "src": "2245:776:12", + "scope": 2234, + "src": "2296:609:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2021, + "id": 2220, "nodeType": "Block", - "src": "3293:294:12", + "src": "3177:294:18", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 1987, + "id": 2186, "name": "confirmationCount", "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "3303:25:12", + "scope": 2221, + "src": "3187:25:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2992,10 +3002,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1986, + "id": 2185, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3303:7:12", + "src": "3187:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3005,16 +3015,16 @@ "visibility": "internal" } ], - "id": 1988, + "id": 2187, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3303:25:12" + "src": "3187:25:18" }, { "body": { - "id": 2017, + "id": 2216, "nodeType": "Block", - "src": "3383:176:12", + "src": "3267:176:18", "statements": [ { "condition": { @@ -3023,26 +3033,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2000, + "id": 2199, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1811, - "src": "3401:11:12", + "referencedDeclaration": 2006, + "src": "3285:11:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 2002, + "id": 2201, "indexExpression": { "argumentTypes": null, - "id": 2001, + "id": 2200, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1981, - "src": "3413:8:12", + "referencedDeclaration": 2180, + "src": "3297:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3053,37 +3063,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3401:21:12", + "src": "3285:21:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2006, + "id": 2205, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2003, + "id": 2202, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1797, - "src": "3423:7:12", + "referencedDeclaration": 1992, + "src": "3307:7:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2005, + "id": 2204, "indexExpression": { "argumentTypes": null, - "id": 2004, + "id": 2203, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1990, - "src": "3431:1:12", + "referencedDeclaration": 2189, + "src": "3315:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3094,7 +3104,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3423:10:12", + "src": "3307:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3105,20 +3115,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3401:33:12", + "src": "3285:33:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2010, + "id": 2209, "nodeType": "IfStatement", - "src": "3397:74:12", + "src": "3281:74:18", "trueBody": { "expression": { "argumentTypes": null, - "id": 2008, + "id": 2207, "isConstant": false, "isLValue": false, "isPure": false, @@ -3126,15 +3136,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3452:19:12", + "src": "3336:19:18", "subExpression": { "argumentTypes": null, - "id": 2007, + "id": 2206, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1987, - "src": "3452:17:12", + "referencedDeclaration": 2186, + "src": "3336:17:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3145,9 +3155,9 @@ "typeString": "uint256" } }, - "id": 2009, + "id": 2208, "nodeType": "ExpressionStatement", - "src": "3452:19:12" + "src": "3336:19:18" } }, { @@ -3157,19 +3167,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2013, + "id": 2212, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2011, + "id": 2210, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1987, - "src": "3489:17:12", + "referencedDeclaration": 2186, + "src": "3373:17:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3179,39 +3189,39 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2012, + "id": 2211, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1794, - "src": "3510:9:12", + "referencedDeclaration": 1989, + "src": "3394:9:18", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "3489:30:12", + "src": "3373:30:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2016, + "id": 2215, "nodeType": "IfStatement", - "src": "3485:63:12", + "src": "3369:63:18", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2014, + "id": 2213, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3544:4:12", + "src": "3428:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3219,10 +3229,10 @@ }, "value": "true" }, - "functionReturnParameters": 1985, - "id": 2015, + "functionReturnParameters": 2184, + "id": 2214, "nodeType": "Return", - "src": "3537:11:12" + "src": "3421:11:18" } } ] @@ -3233,19 +3243,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1996, + "id": 2195, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1993, + "id": 2192, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1990, - "src": "3358:1:12", + "referencedDeclaration": 2189, + "src": "3242:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3257,18 +3267,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1994, + "id": 2193, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1797, - "src": "3362:7:12", + "referencedDeclaration": 1992, + "src": "3246:7:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 1995, + "id": 2194, "isConstant": false, "isLValue": true, "isPure": false, @@ -3276,31 +3286,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3362:14:12", + "src": "3246:14:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3358:18:12", + "src": "3242:18:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2018, + "id": 2217, "initializationExpression": { "assignments": [ - 1990 + 2189 ], "declarations": [ { "constant": false, - "id": 1990, + "id": 2189, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "3343:9:12", + "scope": 2221, + "src": "3227:9:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3308,10 +3318,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1989, + "id": 2188, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3343:7:12", + "src": "3227:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3321,18 +3331,18 @@ "visibility": "internal" } ], - "id": 1992, + "id": 2191, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1991, + "id": 2190, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3355:1:12", + "src": "3239:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3341,12 +3351,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3343:13:12" + "src": "3227:13:18" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1998, + "id": 2197, "isConstant": false, "isLValue": false, "isPure": false, @@ -3354,15 +3364,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3378:3:12", + "src": "3262:3:18", "subExpression": { "argumentTypes": null, - "id": 1997, + "id": 2196, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1990, - "src": "3378:1:12", + "referencedDeclaration": 2189, + "src": "3262:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3373,25 +3383,25 @@ "typeString": "uint256" } }, - "id": 1999, + "id": 2198, "nodeType": "ExpressionStatement", - "src": "3378:3:12" + "src": "3262:3:18" }, "nodeType": "ForStatement", - "src": "3338:221:12" + "src": "3222:221:18" }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2019, + "id": 2218, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3575:5:12", + "src": "3459:5:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3399,15 +3409,15 @@ }, "value": "false" }, - "functionReturnParameters": 1985, - "id": 2020, + "functionReturnParameters": 2184, + "id": 2219, "nodeType": "Return", - "src": "3568:12:12" + "src": "3452:12:18" } ] }, "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param dataHash Data hash.\n @return Confirmation status.", - "id": 2022, + "id": 2221, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3415,16 +3425,16 @@ "name": "isConfirmedByRequiredFriends", "nodeType": "FunctionDefinition", "parameters": { - "id": 1982, + "id": 2181, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1981, + "id": 2180, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "3220:16:12", + "scope": 2221, + "src": "3104:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3432,10 +3442,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1980, + "id": 2179, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3220:7:12", + "src": "3104:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3445,20 +3455,20 @@ "visibility": "internal" } ], - "src": "3219:18:12" + "src": "3103:18:18" }, "payable": false, "returnParameters": { - "id": 1985, + "id": 2184, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1984, + "id": 2183, "name": "", "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "3283:4:12", + "scope": 2221, + "src": "3167:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3466,10 +3476,10 @@ "typeString": "bool" }, "typeName": { - "id": 1983, + "id": 2182, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3283:4:12", + "src": "3167:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3479,19 +3489,19 @@ "visibility": "internal" } ], - "src": "3282:6:12" + "src": "3166:6:18" }, - "scope": 2035, - "src": "3182:405:12", + "scope": 2234, + "src": "3066:405:18", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2033, + "id": 2232, "nodeType": "Block", - "src": "3807:39:12", + "src": "3691:39:18", "statements": [ { "expression": { @@ -3499,12 +3509,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2030, + "id": 2229, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "3834:4:12", + "referencedDeclaration": 2223, + "src": "3718:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3518,18 +3528,18 @@ "typeString": "bytes memory" } ], - "id": 2029, + "id": 2228, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2390, - "src": "3824:9:12", + "referencedDeclaration": 2592, + "src": "3708:9:18", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 2031, + "id": 2230, "isConstant": false, "isLValue": false, "isPure": false, @@ -3537,21 +3547,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3824:15:12", + "src": "3708:15:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 2028, - "id": 2032, + "functionReturnParameters": 2227, + "id": 2231, "nodeType": "Return", - "src": "3817:22:12" + "src": "3701:22:18" } ] }, "documentation": "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash.", - "id": 2034, + "id": 2233, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3559,16 +3569,16 @@ "name": "getDataHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2025, + "id": 2224, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2024, + "id": 2223, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2034, - "src": "3737:10:12", + "scope": 2233, + "src": "3621:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3576,10 +3586,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2023, + "id": 2222, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3737:5:12", + "src": "3621:5:18", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3589,20 +3599,20 @@ "visibility": "internal" } ], - "src": "3736:12:12" + "src": "3620:12:18" }, "payable": false, "returnParameters": { - "id": 2028, + "id": 2227, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2027, + "id": 2226, "name": "", "nodeType": "VariableDeclaration", - "scope": 2034, - "src": "3794:7:12", + "scope": 2233, + "src": "3678:7:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3610,10 +3620,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2026, + "id": 2225, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3794:7:12", + "src": "3678:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3623,82 +3633,82 @@ "visibility": "internal" } ], - "src": "3793:9:12" + "src": "3677:9:18" }, - "scope": 2035, - "src": "3716:130:12", - "stateMutability": "view", + "scope": 2234, + "src": "3600:130:18", + "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 2036, - "src": "306:3542:12" + "scope": 2235, + "src": "306:3426:18" } ], - "src": "0:3849:12" + "src": "0:3733:18" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", "exportedSymbols": { "SocialRecoveryModule": [ - 2035 + 2234 ] }, - "id": 2036, + "id": 2235, "nodeType": "SourceUnit", "nodes": [ { - "id": 1777, + "id": 1975, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:12" + "src": "0:23:18" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 1778, + "id": 1976, "nodeType": "ImportDirective", - "scope": 2036, - "sourceUnit": 7, - "src": "24:21:12", + "scope": 2235, + "sourceUnit": 31, + "src": "24:21:18", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 1779, + "id": 1977, "nodeType": "ImportDirective", - "scope": 2036, - "sourceUnit": 622, - "src": "46:23:12", + "scope": 2235, + "sourceUnit": 751, + "src": "46:23:18", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 1780, + "id": 1978, "nodeType": "ImportDirective", - "scope": 2036, - "sourceUnit": 972, - "src": "70:30:12", + "scope": 2235, + "sourceUnit": 1101, + "src": "70:30:18", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 1781, + "id": 1979, "nodeType": "ImportDirective", - "scope": 2036, - "sourceUnit": 1344, - "src": "101:29:12", + "scope": 2235, + "sourceUnit": 1473, + "src": "101:29:18", "symbolAliases": [], "unitAlias": "" }, @@ -3708,46 +3718,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1782, + "id": 1980, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "339:6:12", + "referencedDeclaration": 750, + "src": "339:6:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, - "id": 1783, + "id": 1981, "nodeType": "InheritanceSpecifier", - "src": "339:6:12" + "src": "339:6:18" } ], "contractDependencies": [ - 580, - 621, - 1359 + 652, + 750, + 1619 ], "contractKind": "contract", "documentation": "@title Social Recovery Module - Allows to replace an owner without Safe confirmations if friends approve the replacement.\n @author Stefan George - ", "fullyImplemented": true, - "id": 2035, + "id": 2234, "linearizedBaseContracts": [ - 2035, - 621, - 580, - 1359 + 2234, + 750, + 652, + 1619 ], "name": "SocialRecoveryModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 1786, + "id": 1984, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2035, - "src": "353:54:12", + "scope": 2234, + "src": "353:54:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3755,10 +3765,10 @@ "typeString": "string" }, "typeName": { - "id": 1784, + "id": 1982, "name": "string", "nodeType": "ElementaryTypeName", - "src": "353:6:12", + "src": "353:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3767,14 +3777,14 @@ "value": { "argumentTypes": null, "hexValue": "536f6369616c205265636f76657279204d6f64756c65", - "id": 1785, + "id": 1983, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "383:24:12", + "src": "383:24:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8f499aea563eae5544b16c9123d6c7c8537a7d9dd86296aa60c65de194207230", @@ -3786,11 +3796,11 @@ }, { "constant": true, - "id": 1789, + "id": 1987, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2035, - "src": "413:40:12", + "scope": 2234, + "src": "413:40:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3798,10 +3808,10 @@ "typeString": "string" }, "typeName": { - "id": 1787, + "id": 1985, "name": "string", "nodeType": "ElementaryTypeName", - "src": "413:6:12", + "src": "413:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3810,14 +3820,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 1788, + "id": 1986, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "446:7:12", + "src": "446:7:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -3827,56 +3837,13 @@ }, "visibility": "public" }, - { - "constant": true, - "id": 1792, - "name": "REPLACE_OWNER_FUNCTION_IDENTIFIER", - "nodeType": "VariableDeclaration", - "scope": 2035, - "src": "459:72:12", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 1790, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "459:6:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "e318b52b", - "id": 1791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "518:13:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_df42753442dae44b262788763363a184bfb8d0df593d5073d67844ce4b3a2d8b", - "typeString": "literal_string (contains invalid UTF-8 sequence at position 2)" - }, - "value": null - }, - "visibility": "public" - }, { "constant": false, - "id": 1794, + "id": 1989, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 2035, - "src": "538:22:12", + "scope": 2234, + "src": "460:22:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3884,10 +3851,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1793, + "id": 1988, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "538:5:12", + "src": "460:5:18", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -3898,11 +3865,11 @@ }, { "constant": false, - "id": 1797, + "id": 1992, "name": "friends", "nodeType": "VariableDeclaration", - "scope": 2035, - "src": "566:24:12", + "scope": 2234, + "src": "488:24:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3911,19 +3878,19 @@ }, "typeName": { "baseType": { - "id": 1795, + "id": 1990, "name": "address", "nodeType": "ElementaryTypeName", - "src": "566:7:12", + "src": "488:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1796, + "id": 1991, "length": null, "nodeType": "ArrayTypeName", - "src": "566:9:12", + "src": "488:9:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -3934,11 +3901,11 @@ }, { "constant": false, - "id": 1801, + "id": 1996, "name": "isFriend", "nodeType": "VariableDeclaration", - "scope": 2035, - "src": "661:41:12", + "scope": 2234, + "src": "583:41:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3946,28 +3913,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 1800, + "id": 1995, "keyType": { - "id": 1798, + "id": 1993, "name": "address", "nodeType": "ElementaryTypeName", - "src": "670:7:12", + "src": "592:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "661:25:12", + "src": "583:25:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 1799, + "id": 1994, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "681:4:12", + "src": "603:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3979,11 +3946,11 @@ }, { "constant": false, - "id": 1805, + "id": 2000, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 2035, - "src": "770:43:12", + "scope": 2234, + "src": "692:43:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3991,28 +3958,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 1804, + "id": 1999, "keyType": { - "id": 1802, + "id": 1997, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "779:7:12", + "src": "701:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "770:25:12", + "src": "692:25:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 1803, + "id": 1998, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "790:4:12", + "src": "712:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4024,11 +3991,11 @@ }, { "constant": false, - "id": 1811, + "id": 2006, "name": "isConfirmed", "nodeType": "VariableDeclaration", - "scope": 2035, - "src": "905:65:12", + "scope": 2234, + "src": "827:65:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4036,46 +4003,46 @@ "typeString": "mapping(bytes32 => mapping(address => bool))" }, "typeName": { - "id": 1810, + "id": 2005, "keyType": { - "id": 1806, + "id": 2001, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "914:7:12", + "src": "836:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "905:46:12", + "src": "827:46:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" }, "valueType": { - "id": 1809, + "id": 2004, "keyType": { - "id": 1807, + "id": 2002, "name": "address", "nodeType": "ElementaryTypeName", - "src": "934:7:12", + "src": "856:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "925:25:12", + "src": "847:25:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 1808, + "id": 2003, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "945:4:12", + "src": "867:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4088,9 +4055,9 @@ }, { "body": { - "id": 1821, + "id": 2016, "nodeType": "Block", - "src": "999:57:12", + "src": "921:57:18", "statements": [ { "expression": { @@ -4100,34 +4067,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1814, + "id": 2009, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "1017:8:12", + "referencedDeclaration": 1996, + "src": "939:8:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1817, + "id": 2012, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1815, + "id": 2010, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "1026:3:12", + "referencedDeclaration": 2598, + "src": "948:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1816, + "id": 2011, "isConstant": false, "isLValue": false, "isPure": false, @@ -4135,7 +4102,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1026:10:12", + "src": "948:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4146,7 +4113,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1017:20:12", + "src": "939:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4160,21 +4127,21 @@ "typeString": "bool" } ], - "id": 1813, + "id": 2008, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1009:7:12", + "referencedDeclaration": 2601, + "src": "931:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1818, + "id": 2013, "isConstant": false, "isLValue": false, "isPure": false, @@ -4182,41 +4149,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1009:29:12", + "src": "931:29:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1819, + "id": 2014, "nodeType": "ExpressionStatement", - "src": "1009:29:12" + "src": "931:29:18" }, { - "id": 1820, + "id": 2015, "nodeType": "PlaceholderStatement", - "src": "1048:1:12" + "src": "970:1:18" } ] }, "documentation": null, - "id": 1822, + "id": 2017, "name": "onlyFriend", "nodeType": "ModifierDefinition", "parameters": { - "id": 1812, + "id": 2007, "nodeType": "ParameterList", "parameters": [], - "src": "996:2:12" + "src": "918:2:18" }, - "src": "977:79:12", + "src": "899:79:18", "visibility": "internal" }, { "body": { - "id": 1892, + "id": 2087, "nodeType": "Block", - "src": "1325:422:12", + "src": "1247:422:18", "statements": [ { "expression": { @@ -4228,19 +4195,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1834, + "id": 2029, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1831, + "id": 2026, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1827, - "src": "1343:10:12", + "referencedDeclaration": 2022, + "src": "1265:10:18", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4252,18 +4219,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1832, + "id": 2027, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1825, - "src": "1357:8:12", + "referencedDeclaration": 2020, + "src": "1279:8:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1833, + "id": 2028, "isConstant": false, "isLValue": false, "isPure": false, @@ -4271,13 +4238,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1357:15:12", + "src": "1279:15:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1343:29:12", + "src": "1265:29:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4291,21 +4258,21 @@ "typeString": "bool" } ], - "id": 1830, + "id": 2025, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1335:7:12", + "referencedDeclaration": 2601, + "src": "1257:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1835, + "id": 2030, "isConstant": false, "isLValue": false, "isPure": false, @@ -4313,15 +4280,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1335:38:12", + "src": "1257:38:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1836, + "id": 2031, "nodeType": "ExpressionStatement", - "src": "1335:38:12" + "src": "1257:38:18" }, { "expression": { @@ -4333,19 +4300,19 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1840, + "id": 2035, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1838, + "id": 2033, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1827, - "src": "1391:10:12", + "referencedDeclaration": 2022, + "src": "1313:10:18", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4356,14 +4323,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 1839, + "id": 2034, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1405:1:12", + "src": "1327:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -4371,7 +4338,7 @@ }, "value": "2" }, - "src": "1391:15:12", + "src": "1313:15:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4385,21 +4352,21 @@ "typeString": "bool" } ], - "id": 1837, + "id": 2032, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1383:7:12", + "referencedDeclaration": 2601, + "src": "1305:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1841, + "id": 2036, "isConstant": false, "isLValue": false, "isPure": false, @@ -4407,15 +4374,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1383:24:12", + "src": "1305:24:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1842, + "id": 2037, "nodeType": "ExpressionStatement", - "src": "1383:24:12" + "src": "1305:24:18" }, { "expression": { @@ -4423,18 +4390,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1843, + "id": 2038, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "1417:10:12", + "referencedDeclaration": 749, + "src": "1339:10:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1844, + "id": 2039, "isConstant": false, "isLValue": false, "isPure": false, @@ -4442,34 +4409,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1417:12:12", + "src": "1339:12:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1845, + "id": 2040, "nodeType": "ExpressionStatement", - "src": "1417:12:12" + "src": "1339:12:18" }, { "body": { - "id": 1882, + "id": 2077, "nodeType": "Block", - "src": "1517:164:12", + "src": "1439:164:18", "statements": [ { "assignments": [ - 1858 + 2053 ], "declarations": [ { "constant": false, - "id": 1858, + "id": 2053, "name": "friend", "nodeType": "VariableDeclaration", - "scope": 1893, - "src": "1531:14:12", + "scope": 2088, + "src": "1453:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4477,10 +4444,10 @@ "typeString": "address" }, "typeName": { - "id": 1857, + "id": 2052, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1531:7:12", + "src": "1453:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4490,31 +4457,31 @@ "visibility": "internal" } ], - "id": 1862, + "id": 2057, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1859, + "id": 2054, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1825, - "src": "1548:8:12", + "referencedDeclaration": 2020, + "src": "1470:8:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1861, + "id": 2056, "indexExpression": { "argumentTypes": null, - "id": 1860, + "id": 2055, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1847, - "src": "1557:1:12", + "referencedDeclaration": 2042, + "src": "1479:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4525,14 +4492,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1548:11:12", + "src": "1470:11:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1531:28:12" + "src": "1453:28:18" }, { "expression": { @@ -4544,19 +4511,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1866, + "id": 2061, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1864, + "id": 2059, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, - "src": "1581:6:12", + "referencedDeclaration": 2053, + "src": "1503:6:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4567,14 +4534,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1865, + "id": 2060, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1591:1:12", + "src": "1513:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4582,7 +4549,7 @@ }, "value": "0" }, - "src": "1581:11:12", + "src": "1503:11:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4596,21 +4563,21 @@ "typeString": "bool" } ], - "id": 1863, + "id": 2058, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1573:7:12", + "referencedDeclaration": 2601, + "src": "1495:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1867, + "id": 2062, "isConstant": false, "isLValue": false, "isPure": false, @@ -4618,15 +4585,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1573:20:12", + "src": "1495:20:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1868, + "id": 2063, "nodeType": "ExpressionStatement", - "src": "1573:20:12" + "src": "1495:20:18" }, { "expression": { @@ -4634,7 +4601,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1873, + "id": 2068, "isConstant": false, "isLValue": false, "isPure": false, @@ -4642,31 +4609,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1615:17:12", + "src": "1537:17:18", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1870, + "id": 2065, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "1616:8:12", + "referencedDeclaration": 1996, + "src": "1538:8:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1872, + "id": 2067, "indexExpression": { "argumentTypes": null, - "id": 1871, + "id": 2066, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, - "src": "1625:6:12", + "referencedDeclaration": 2053, + "src": "1547:6:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4677,7 +4644,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1616:16:12", + "src": "1538:16:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4696,21 +4663,21 @@ "typeString": "bool" } ], - "id": 1869, + "id": 2064, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1607:7:12", + "referencedDeclaration": 2601, + "src": "1529:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1874, + "id": 2069, "isConstant": false, "isLValue": false, "isPure": false, @@ -4718,20 +4685,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1607:26:12", + "src": "1529:26:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1875, + "id": 2070, "nodeType": "ExpressionStatement", - "src": "1607:26:12" + "src": "1529:26:18" }, { "expression": { "argumentTypes": null, - "id": 1880, + "id": 2075, "isConstant": false, "isLValue": false, "isPure": false, @@ -4740,26 +4707,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1876, + "id": 2071, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "1647:8:12", + "referencedDeclaration": 1996, + "src": "1569:8:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1878, + "id": 2073, "indexExpression": { "argumentTypes": null, - "id": 1877, + "id": 2072, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, - "src": "1656:6:12", + "referencedDeclaration": 2053, + "src": "1578:6:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4770,7 +4737,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1647:16:12", + "src": "1569:16:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4781,14 +4748,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1879, + "id": 2074, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1666:4:12", + "src": "1588:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4796,15 +4763,15 @@ }, "value": "true" }, - "src": "1647:23:12", + "src": "1569:23:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1881, + "id": 2076, "nodeType": "ExpressionStatement", - "src": "1647:23:12" + "src": "1569:23:18" } ] }, @@ -4814,19 +4781,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1853, + "id": 2048, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1850, + "id": 2045, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1847, - "src": "1491:1:12", + "referencedDeclaration": 2042, + "src": "1413:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4838,18 +4805,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1851, + "id": 2046, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1825, - "src": "1495:8:12", + "referencedDeclaration": 2020, + "src": "1417:8:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1852, + "id": 2047, "isConstant": false, "isLValue": false, "isPure": false, @@ -4857,31 +4824,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1495:15:12", + "src": "1417:15:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1491:19:12", + "src": "1413:19:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1883, + "id": 2078, "initializationExpression": { "assignments": [ - 1847 + 2042 ], "declarations": [ { "constant": false, - "id": 1847, + "id": 2042, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1893, - "src": "1476:9:12", + "scope": 2088, + "src": "1398:9:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4889,10 +4856,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1846, + "id": 2041, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1476:7:12", + "src": "1398:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4902,18 +4869,18 @@ "visibility": "internal" } ], - "id": 1849, + "id": 2044, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1848, + "id": 2043, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1488:1:12", + "src": "1410:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4922,12 +4889,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1476:13:12" + "src": "1398:13:18" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1855, + "id": 2050, "isConstant": false, "isLValue": false, "isPure": false, @@ -4935,15 +4902,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1512:3:12", + "src": "1434:3:18", "subExpression": { "argumentTypes": null, - "id": 1854, + "id": 2049, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1847, - "src": "1512:1:12", + "referencedDeclaration": 2042, + "src": "1434:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4954,29 +4921,29 @@ "typeString": "uint256" } }, - "id": 1856, + "id": 2051, "nodeType": "ExpressionStatement", - "src": "1512:3:12" + "src": "1434:3:18" }, "nodeType": "ForStatement", - "src": "1471:210:12" + "src": "1393:210:18" }, { "expression": { "argumentTypes": null, - "id": 1886, + "id": 2081, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1884, + "id": 2079, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1797, - "src": "1690:7:12", + "referencedDeclaration": 1992, + "src": "1612:7:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" @@ -4986,43 +4953,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1885, + "id": 2080, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1825, - "src": "1700:8:12", + "referencedDeclaration": 2020, + "src": "1622:8:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "src": "1690:18:12", + "src": "1612:18:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 1887, + "id": 2082, "nodeType": "ExpressionStatement", - "src": "1690:18:12" + "src": "1612:18:18" }, { "expression": { "argumentTypes": null, - "id": 1890, + "id": 2085, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1888, + "id": 2083, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1794, - "src": "1718:9:12", + "referencedDeclaration": 1989, + "src": "1640:9:18", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5032,31 +4999,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1889, + "id": 2084, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1827, - "src": "1730:10:12", + "referencedDeclaration": 2022, + "src": "1652:10:18", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "1718:22:12", + "src": "1640:22:18", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 1891, + "id": 2086, "nodeType": "ExpressionStatement", - "src": "1718:22:12" + "src": "1640:22:18" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param _friends List of friends' addresses.\n @param _threshold Required number of friends to confirm replacement.", - "id": 1893, + "id": 2088, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5064,16 +5031,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 1828, + "id": 2023, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1825, + "id": 2020, "name": "_friends", "nodeType": "VariableDeclaration", - "scope": 1893, - "src": "1268:18:12", + "scope": 2088, + "src": "1190:18:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5082,19 +5049,19 @@ }, "typeName": { "baseType": { - "id": 1823, + "id": 2018, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1268:7:12", + "src": "1190:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1824, + "id": 2019, "length": null, "nodeType": "ArrayTypeName", - "src": "1268:9:12", + "src": "1190:9:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -5105,11 +5072,11 @@ }, { "constant": false, - "id": 1827, + "id": 2022, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1893, - "src": "1288:16:12", + "scope": 2088, + "src": "1210:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5117,10 +5084,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1826, + "id": 2021, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1288:5:12", + "src": "1210:5:18", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -5130,26 +5097,26 @@ "visibility": "internal" } ], - "src": "1267:38:12" + "src": "1189:38:18" }, "payable": false, "returnParameters": { - "id": 1829, + "id": 2024, "nodeType": "ParameterList", "parameters": [], - "src": "1325:0:12" + "src": "1247:0:18" }, - "scope": 2035, - "src": "1253:494:12", + "scope": 2234, + "src": "1175:494:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1916, + "id": 2111, "nodeType": "Block", - "src": "1944:97:12", + "src": "1866:97:18", "statements": [ { "expression": { @@ -5157,7 +5124,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1904, + "id": 2099, "isConstant": false, "isLValue": false, "isPure": false, @@ -5165,31 +5132,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1962:21:12", + "src": "1884:21:18", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1901, + "id": 2096, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "1963:10:12", + "referencedDeclaration": 2000, + "src": "1885:10:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 1903, + "id": 2098, "indexExpression": { "argumentTypes": null, - "id": 1902, + "id": 2097, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1895, - "src": "1974:8:12", + "referencedDeclaration": 2090, + "src": "1896:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5200,7 +5167,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1963:20:12", + "src": "1885:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5219,21 +5186,21 @@ "typeString": "bool" } ], - "id": 1900, + "id": 2095, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1954:7:12", + "referencedDeclaration": 2601, + "src": "1876:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1905, + "id": 2100, "isConstant": false, "isLValue": false, "isPure": false, @@ -5241,20 +5208,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1954:30:12", + "src": "1876:30:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1906, + "id": 2101, "nodeType": "ExpressionStatement", - "src": "1954:30:12" + "src": "1876:30:18" }, { "expression": { "argumentTypes": null, - "id": 1914, + "id": 2109, "isConstant": false, "isLValue": false, "isPure": false, @@ -5265,26 +5232,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1907, + "id": 2102, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1811, - "src": "1994:11:12", + "referencedDeclaration": 2006, + "src": "1916:11:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 1911, + "id": 2106, "indexExpression": { "argumentTypes": null, - "id": 1908, + "id": 2103, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1895, - "src": "2006:8:12", + "referencedDeclaration": 2090, + "src": "1928:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5295,29 +5262,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1994:21:12", + "src": "1916:21:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1912, + "id": 2107, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1909, + "id": 2104, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "2016:3:12", + "referencedDeclaration": 2598, + "src": "1938:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1910, + "id": 2105, "isConstant": false, "isLValue": false, "isPure": false, @@ -5325,7 +5292,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2016:10:12", + "src": "1938:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5336,7 +5303,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1994:33:12", + "src": "1916:33:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5347,14 +5314,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1913, + "id": 2108, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2030:4:12", + "src": "1952:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5362,57 +5329,57 @@ }, "value": "true" }, - "src": "1994:40:12", + "src": "1916:40:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1915, + "id": 2110, "nodeType": "ExpressionStatement", - "src": "1994:40:12" + "src": "1916:40:18" } ] }, "documentation": "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash.", - "id": 1917, + "id": 2112, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1898, + "id": 2093, "modifierName": { "argumentTypes": null, - "id": 1897, + "id": 2092, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1822, - "src": "1929:10:12", + "referencedDeclaration": 2017, + "src": "1851:10:18", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1929:10:12" + "src": "1851:10:18" } ], "name": "confirmTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 1896, + "id": 2091, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1895, + "id": 2090, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 1917, - "src": "1888:16:12", + "scope": 2112, + "src": "1810:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5420,10 +5387,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1894, + "id": 2089, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1888:7:12", + "src": "1810:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5433,26 +5400,26 @@ "visibility": "internal" } ], - "src": "1887:18:12" + "src": "1809:18:18" }, "payable": false, "returnParameters": { - "id": 1899, + "id": 2094, "nodeType": "ParameterList", "parameters": [], - "src": "1944:0:12" + "src": "1866:0:18" }, - "scope": 2035, - "src": "1860:181:12", + "scope": 2234, + "src": "1782:181:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1978, + "id": 2177, "nodeType": "Block", - "src": "2299:722:12", + "src": "2393:512:18", "statements": [ { "expression": { @@ -5462,34 +5429,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1923, + "id": 2122, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "2381:8:12", + "referencedDeclaration": 1996, + "src": "2475:8:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 1926, + "id": 2125, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1924, + "id": 2123, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "2390:3:12", + "referencedDeclaration": 2598, + "src": "2484:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1925, + "id": 2124, "isConstant": false, "isLValue": false, "isPure": false, @@ -5497,7 +5464,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2390:10:12", + "src": "2484:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5508,7 +5475,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2381:20:12", + "src": "2475:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5522,21 +5489,21 @@ "typeString": "bool" } ], - "id": 1922, + "id": 2121, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2373:7:12", + "referencedDeclaration": 2601, + "src": "2467:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1927, + "id": 2126, "isConstant": false, "isLValue": false, "isPure": false, @@ -5544,149 +5511,157 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2373:29:12", + "src": "2467:29:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1928, + "id": 2127, "nodeType": "ExpressionStatement", - "src": "2373:29:12" + "src": "2467:29:18" }, { - "assignments": [], + "assignments": [ + 2129 + ], "declarations": [ { "constant": false, - "id": 1930, - "name": "functionIdentifier", + "id": 2129, + "name": "data", "nodeType": "VariableDeclaration", - "scope": 1979, - "src": "2485:25:12", + "scope": 2178, + "src": "2506:17:18", "stateVariable": false, - "storageLocation": "default", + "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" }, "typeName": { - "id": 1929, - "name": "bytes4", + "id": 2128, + "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2485:6:12", + "src": "2506:5:18", "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" } }, "value": null, "visibility": "internal" } ], - "id": 1931, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2485:25:12" - }, - { - "externalReferences": [ - { - "functionIdentifier": { - "declaration": 1930, - "isOffset": false, - "isSlot": false, - "src": "2607:18:12", - "valueSize": 1 - } - }, - { - "data": { - "declaration": 1919, - "isOffset": false, - "isSlot": false, - "src": "2639:4:12", - "valueSize": 1 - } - } - ], - "id": 1932, - "nodeType": "InlineAssembly", - "operations": "{\n functionIdentifier := mload(add(data, 0x20))\n}", - "src": "2584:93:12" - }, - { - "expression": { + "id": 2137, + "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 1936, + "hexValue": "737761704f776e657228616464726573732c616464726573732c6164647265737329", + "id": 2132, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, + "kind": "string", "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1934, - "name": "functionIdentifier", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "2678:18:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1935, - "name": "REPLACE_OWNER_FUNCTION_IDENTIFIER", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1792, - "src": "2700:33:12", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "2678:55:12", + "nodeType": "Literal", + "src": "2550:36:18", + "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", + "typeString": "literal_string \"swapOwner(address,address,address)\"" + }, + "value": "swapOwner(address,address,address)" + }, + { + "argumentTypes": null, + "id": 2133, + "name": "prevOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2114, + "src": "2588:9:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2134, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2116, + "src": "2599:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2135, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2118, + "src": "2609:8:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", + "typeString": "literal_string \"swapOwner(address,address,address)\"" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" } ], - "id": 1933, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 2399, - 2400 - ], - "referencedDeclaration": 2399, - "src": "2670:7:12", + "expression": { + "argumentTypes": null, + "id": 2130, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2585, + "src": "2526:3:18", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2131, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2526:23:18", "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" + "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 1937, + "id": 2136, "isConstant": false, "isLValue": false, "isPure": false, @@ -5694,28 +5669,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2670:64:12", + "src": "2526:92:18", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" } }, - "id": 1938, - "nodeType": "ExpressionStatement", - "src": "2670:64:12" + "nodeType": "VariableDeclarationStatement", + "src": "2506:112:18" }, { "assignments": [ - 1940 + 2139 ], "declarations": [ { "constant": false, - "id": 1940, + "id": 2139, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 1979, - "src": "2744:16:12", + "scope": 2178, + "src": "2628:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5723,10 +5697,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1939, + "id": 2138, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2744:7:12", + "src": "2628:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5736,18 +5710,18 @@ "visibility": "internal" } ], - "id": 1944, + "id": 2143, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1942, + "id": 2141, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1919, - "src": "2775:4:12", + "referencedDeclaration": 2129, + "src": "2659:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5761,18 +5735,18 @@ "typeString": "bytes memory" } ], - "id": 1941, + "id": 2140, "name": "getDataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "2763:11:12", + "referencedDeclaration": 2233, + "src": "2647:11:18", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) view returns (bytes32)" + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1943, + "id": 2142, "isConstant": false, "isLValue": false, "isPure": false, @@ -5780,14 +5754,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2763:17:12", + "src": "2647:17:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2744:36:12" + "src": "2628:36:18" }, { "expression": { @@ -5795,7 +5769,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1949, + "id": 2148, "isConstant": false, "isLValue": false, "isPure": false, @@ -5803,31 +5777,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2798:21:12", + "src": "2682:21:18", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1946, + "id": 2145, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "2799:10:12", + "referencedDeclaration": 2000, + "src": "2683:10:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 1948, + "id": 2147, "indexExpression": { "argumentTypes": null, - "id": 1947, + "id": 2146, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1940, - "src": "2810:8:12", + "referencedDeclaration": 2139, + "src": "2694:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5838,7 +5812,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2799:20:12", + "src": "2683:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5857,21 +5831,21 @@ "typeString": "bool" } ], - "id": 1945, + "id": 2144, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2790:7:12", + "referencedDeclaration": 2601, + "src": "2674:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1950, + "id": 2149, "isConstant": false, "isLValue": false, "isPure": false, @@ -5879,15 +5853,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2790:30:12", + "src": "2674:30:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1951, + "id": 2150, "nodeType": "ExpressionStatement", - "src": "2790:30:12" + "src": "2674:30:18" }, { "expression": { @@ -5898,12 +5872,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1954, + "id": 2153, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1940, - "src": "2867:8:12", + "referencedDeclaration": 2139, + "src": "2751:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5917,18 +5891,18 @@ "typeString": "bytes32" } ], - "id": 1953, + "id": 2152, "name": "isConfirmedByRequiredFriends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "2838:28:12", + "referencedDeclaration": 2221, + "src": "2722:28:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 1955, + "id": 2154, "isConstant": false, "isLValue": false, "isPure": false, @@ -5936,7 +5910,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2838:38:12", + "src": "2722:38:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5950,21 +5924,21 @@ "typeString": "bool" } ], - "id": 1952, + "id": 2151, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2830:7:12", + "referencedDeclaration": 2601, + "src": "2714:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1956, + "id": 2155, "isConstant": false, "isLValue": false, "isPure": false, @@ -5972,20 +5946,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2830:47:12", + "src": "2714:47:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1957, + "id": 2156, "nodeType": "ExpressionStatement", - "src": "2830:47:12" + "src": "2714:47:18" }, { "expression": { "argumentTypes": null, - "id": 1962, + "id": 2161, "isConstant": false, "isLValue": false, "isPure": false, @@ -5994,26 +5968,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1958, + "id": 2157, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "2887:10:12", + "referencedDeclaration": 2000, + "src": "2771:10:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 1960, + "id": 2159, "indexExpression": { "argumentTypes": null, - "id": 1959, + "id": 2158, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1940, - "src": "2898:8:12", + "referencedDeclaration": 2139, + "src": "2782:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6024,7 +5998,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2887:20:12", + "src": "2771:20:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6035,14 +6009,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 1961, + "id": 2160, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2910:4:12", + "src": "2794:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6050,15 +6024,15 @@ }, "value": "true" }, - "src": "2887:27:12", + "src": "2771:27:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1963, + "id": 2162, "nodeType": "ExpressionStatement", - "src": "2887:27:12" + "src": "2771:27:18" }, { "expression": { @@ -6072,14 +6046,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1968, + "id": 2167, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "2974:7:12", + "referencedDeclaration": 717, + "src": "2858:7:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } } @@ -6087,24 +6061,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } ], - "id": 1967, + "id": 2166, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2966:7:12", + "src": "2850:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1969, + "id": 2168, "isConstant": false, "isLValue": false, "isPure": false, @@ -6112,7 +6086,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2966:16:12", + "src": "2850:16:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6121,14 +6095,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1970, + "id": 2169, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2984:1:12", + "src": "2868:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6138,12 +6112,12 @@ }, { "argumentTypes": null, - "id": 1971, + "id": 2170, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1919, - "src": "2987:4:12", + "referencedDeclaration": 2129, + "src": "2871:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6155,32 +6129,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1972, + "id": 2171, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "2993:4:12", + "referencedDeclaration": 30, + "src": "2877:4:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$6_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", "typeString": "type(contract Enum)" } }, - "id": 1973, + "id": 2172, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "2993:14:12", + "referencedDeclaration": 29, + "src": "2877:14:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$5_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 1974, + "id": 2173, "isConstant": false, "isLValue": false, "isPure": true, @@ -6188,9 +6162,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2993:19:12", + "src": "2877:19:18", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } } @@ -6210,38 +6184,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 1965, + "id": 2164, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "2932:7:12", + "referencedDeclaration": 717, + "src": "2816:7:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } }, - "id": 1966, + "id": 2165, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 798, - "src": "2932:33:12", + "referencedDeclaration": 927, + "src": "2816:33:18", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 1975, + "id": 2174, "isConstant": false, "isLValue": false, "isPure": false, @@ -6249,7 +6223,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2932:81:12", + "src": "2816:81:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6263,21 +6237,21 @@ "typeString": "bool" } ], - "id": 1964, + "id": 2163, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2924:7:12", + "referencedDeclaration": 2601, + "src": "2808:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 1976, + "id": 2175, "isConstant": false, "isLValue": false, "isPure": false, @@ -6285,20 +6259,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2924:90:12", + "src": "2808:90:18", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1977, + "id": 2176, "nodeType": "ExpressionStatement", - "src": "2924:90:12" + "src": "2808:90:18" } ] }, - "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param data Encoded owner replacement transaction.\n @return Returns if transaction can be executed.", - "id": 1979, + "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param prevOwner Owner that pointed to the owner to be replaced in the linked list\n @param oldOwner Owner address to be replaced.\n @param newOwner New owner address.\n @return Returns if transaction can be executed.", + "id": 2178, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6306,67 +6280,119 @@ "name": "recoverAccess", "nodeType": "FunctionDefinition", "parameters": { - "id": 1920, + "id": 2119, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1919, - "name": "data", + "id": 2114, + "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1979, - "src": "2268:10:12", + "scope": 2178, + "src": "2319:17:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" + "typeIdentifier": "t_address", + "typeString": "address" }, "typeName": { - "id": 1918, - "name": "bytes", + "id": 2113, + "name": "address", "nodeType": "ElementaryTypeName", - "src": "2268:5:12", + "src": "2319:7:18", "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2116, + "name": "oldOwner", + "nodeType": "VariableDeclaration", + "scope": 2178, + "src": "2338:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2115, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2338:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2118, + "name": "newOwner", + "nodeType": "VariableDeclaration", + "scope": 2178, + "src": "2356:16:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2356:7:18", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" } }, "value": null, "visibility": "internal" } ], - "src": "2267:12:12" + "src": "2318:55:18" }, "payable": false, "returnParameters": { - "id": 1921, + "id": 2120, "nodeType": "ParameterList", "parameters": [], - "src": "2299:0:12" + "src": "2393:0:18" }, - "scope": 2035, - "src": "2245:776:12", + "scope": 2234, + "src": "2296:609:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2021, + "id": 2220, "nodeType": "Block", - "src": "3293:294:12", + "src": "3177:294:18", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 1987, + "id": 2186, "name": "confirmationCount", "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "3303:25:12", + "scope": 2221, + "src": "3187:25:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6374,10 +6400,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1986, + "id": 2185, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3303:7:12", + "src": "3187:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6387,16 +6413,16 @@ "visibility": "internal" } ], - "id": 1988, + "id": 2187, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3303:25:12" + "src": "3187:25:18" }, { "body": { - "id": 2017, + "id": 2216, "nodeType": "Block", - "src": "3383:176:12", + "src": "3267:176:18", "statements": [ { "condition": { @@ -6405,26 +6431,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2000, + "id": 2199, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1811, - "src": "3401:11:12", + "referencedDeclaration": 2006, + "src": "3285:11:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 2002, + "id": 2201, "indexExpression": { "argumentTypes": null, - "id": 2001, + "id": 2200, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1981, - "src": "3413:8:12", + "referencedDeclaration": 2180, + "src": "3297:8:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6435,37 +6461,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3401:21:12", + "src": "3285:21:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2006, + "id": 2205, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2003, + "id": 2202, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1797, - "src": "3423:7:12", + "referencedDeclaration": 1992, + "src": "3307:7:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2005, + "id": 2204, "indexExpression": { "argumentTypes": null, - "id": 2004, + "id": 2203, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1990, - "src": "3431:1:12", + "referencedDeclaration": 2189, + "src": "3315:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6476,7 +6502,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3423:10:12", + "src": "3307:10:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6487,20 +6513,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3401:33:12", + "src": "3285:33:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2010, + "id": 2209, "nodeType": "IfStatement", - "src": "3397:74:12", + "src": "3281:74:18", "trueBody": { "expression": { "argumentTypes": null, - "id": 2008, + "id": 2207, "isConstant": false, "isLValue": false, "isPure": false, @@ -6508,15 +6534,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3452:19:12", + "src": "3336:19:18", "subExpression": { "argumentTypes": null, - "id": 2007, + "id": 2206, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1987, - "src": "3452:17:12", + "referencedDeclaration": 2186, + "src": "3336:17:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6527,9 +6553,9 @@ "typeString": "uint256" } }, - "id": 2009, + "id": 2208, "nodeType": "ExpressionStatement", - "src": "3452:19:12" + "src": "3336:19:18" } }, { @@ -6539,19 +6565,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2013, + "id": 2212, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2011, + "id": 2210, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1987, - "src": "3489:17:12", + "referencedDeclaration": 2186, + "src": "3373:17:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6561,39 +6587,39 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2012, + "id": 2211, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1794, - "src": "3510:9:12", + "referencedDeclaration": 1989, + "src": "3394:9:18", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "3489:30:12", + "src": "3373:30:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2016, + "id": 2215, "nodeType": "IfStatement", - "src": "3485:63:12", + "src": "3369:63:18", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2014, + "id": 2213, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3544:4:12", + "src": "3428:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6601,10 +6627,10 @@ }, "value": "true" }, - "functionReturnParameters": 1985, - "id": 2015, + "functionReturnParameters": 2184, + "id": 2214, "nodeType": "Return", - "src": "3537:11:12" + "src": "3421:11:18" } } ] @@ -6615,19 +6641,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1996, + "id": 2195, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1993, + "id": 2192, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1990, - "src": "3358:1:12", + "referencedDeclaration": 2189, + "src": "3242:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6639,18 +6665,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1994, + "id": 2193, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1797, - "src": "3362:7:12", + "referencedDeclaration": 1992, + "src": "3246:7:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 1995, + "id": 2194, "isConstant": false, "isLValue": true, "isPure": false, @@ -6658,31 +6684,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3362:14:12", + "src": "3246:14:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3358:18:12", + "src": "3242:18:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2018, + "id": 2217, "initializationExpression": { "assignments": [ - 1990 + 2189 ], "declarations": [ { "constant": false, - "id": 1990, + "id": 2189, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "3343:9:12", + "scope": 2221, + "src": "3227:9:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6690,10 +6716,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1989, + "id": 2188, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3343:7:12", + "src": "3227:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6703,18 +6729,18 @@ "visibility": "internal" } ], - "id": 1992, + "id": 2191, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1991, + "id": 2190, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3355:1:12", + "src": "3239:1:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6723,12 +6749,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3343:13:12" + "src": "3227:13:18" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1998, + "id": 2197, "isConstant": false, "isLValue": false, "isPure": false, @@ -6736,15 +6762,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3378:3:12", + "src": "3262:3:18", "subExpression": { "argumentTypes": null, - "id": 1997, + "id": 2196, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1990, - "src": "3378:1:12", + "referencedDeclaration": 2189, + "src": "3262:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6755,25 +6781,25 @@ "typeString": "uint256" } }, - "id": 1999, + "id": 2198, "nodeType": "ExpressionStatement", - "src": "3378:3:12" + "src": "3262:3:18" }, "nodeType": "ForStatement", - "src": "3338:221:12" + "src": "3222:221:18" }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2019, + "id": 2218, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3575:5:12", + "src": "3459:5:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6781,15 +6807,15 @@ }, "value": "false" }, - "functionReturnParameters": 1985, - "id": 2020, + "functionReturnParameters": 2184, + "id": 2219, "nodeType": "Return", - "src": "3568:12:12" + "src": "3452:12:18" } ] }, "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param dataHash Data hash.\n @return Confirmation status.", - "id": 2022, + "id": 2221, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6797,16 +6823,16 @@ "name": "isConfirmedByRequiredFriends", "nodeType": "FunctionDefinition", "parameters": { - "id": 1982, + "id": 2181, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1981, + "id": 2180, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "3220:16:12", + "scope": 2221, + "src": "3104:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6814,10 +6840,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1980, + "id": 2179, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3220:7:12", + "src": "3104:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6827,20 +6853,20 @@ "visibility": "internal" } ], - "src": "3219:18:12" + "src": "3103:18:18" }, "payable": false, "returnParameters": { - "id": 1985, + "id": 2184, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1984, + "id": 2183, "name": "", "nodeType": "VariableDeclaration", - "scope": 2022, - "src": "3283:4:12", + "scope": 2221, + "src": "3167:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6848,10 +6874,10 @@ "typeString": "bool" }, "typeName": { - "id": 1983, + "id": 2182, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3283:4:12", + "src": "3167:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6861,19 +6887,19 @@ "visibility": "internal" } ], - "src": "3282:6:12" + "src": "3166:6:18" }, - "scope": 2035, - "src": "3182:405:12", + "scope": 2234, + "src": "3066:405:18", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2033, + "id": 2232, "nodeType": "Block", - "src": "3807:39:12", + "src": "3691:39:18", "statements": [ { "expression": { @@ -6881,12 +6907,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2030, + "id": 2229, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2024, - "src": "3834:4:12", + "referencedDeclaration": 2223, + "src": "3718:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6900,18 +6926,18 @@ "typeString": "bytes memory" } ], - "id": 2029, + "id": 2228, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2390, - "src": "3824:9:12", + "referencedDeclaration": 2592, + "src": "3708:9:18", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 2031, + "id": 2230, "isConstant": false, "isLValue": false, "isPure": false, @@ -6919,21 +6945,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3824:15:12", + "src": "3708:15:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 2028, - "id": 2032, + "functionReturnParameters": 2227, + "id": 2231, "nodeType": "Return", - "src": "3817:22:12" + "src": "3701:22:18" } ] }, "documentation": "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash.", - "id": 2034, + "id": 2233, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6941,16 +6967,16 @@ "name": "getDataHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2025, + "id": 2224, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2024, + "id": 2223, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2034, - "src": "3737:10:12", + "scope": 2233, + "src": "3621:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6958,10 +6984,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2023, + "id": 2222, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3737:5:12", + "src": "3621:5:18", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6971,20 +6997,20 @@ "visibility": "internal" } ], - "src": "3736:12:12" + "src": "3620:12:18" }, "payable": false, "returnParameters": { - "id": 2028, + "id": 2227, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2027, + "id": 2226, "name": "", "nodeType": "VariableDeclaration", - "scope": 2034, - "src": "3794:7:12", + "scope": 2233, + "src": "3678:7:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6992,10 +7018,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2026, + "id": 2225, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3794:7:12", + "src": "3678:7:18", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7005,63 +7031,45 @@ "visibility": "internal" } ], - "src": "3793:9:12" + "src": "3677:9:18" }, - "scope": 2035, - "src": "3716:130:12", - "stateMutability": "view", + "scope": 2234, + "src": "3600:130:18", + "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 2036, - "src": "306:3542:12" + "scope": 2235, + "src": "306:3426:18" } ], - "src": "0:3849:12" + "src": "0:3733:18" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { "4": { "events": {}, "links": {}, - "address": "0x1d851ebb3a205deb27104b7bef2a5633fba06154", - "transactionHash": "0xf2590f3fc263b11656e7dbcce8d8f02605b6856cade967e1720cc0c5dd2608d5" - }, - "1525950336085": { - "events": {}, - "links": {}, - "address": "0xfe2114e016fa8d92959754f25d4f63f155ad1a6a", - "transactionHash": "0xa514f0c5c6fcab99a16bba503b6ed893935cedfafe2e5c8c825dfc117e1e266d" - }, - "1526283540628": { - "events": {}, - "links": {}, - "address": "0x12fb2fe4f6d4c08b14c694e163b9bee65697e708", - "transactionHash": "0xa514f0c5c6fcab99a16bba503b6ed893935cedfafe2e5c8c825dfc117e1e266d" - }, - "1526478212260": { - "events": {}, - "links": {}, - "address": "0x1a92687d3982d12a985c4c35447673ff1fd312d1", - "transactionHash": "0x44896356866fb32a30fe5b74e2e5b2ce3383ffef7f3190f5f10a98b5fa4406de" - }, - "1526973574996": { - "events": {}, - "links": {}, - "address": "0xadaea58298d3f8087ac9a8d9c70ed90bb47719c3", - "transactionHash": "0x44896356866fb32a30fe5b74e2e5b2ce3383ffef7f3190f5f10a98b5fa4406de" + "address": "0xf1f0987c2fb0a6fc7ca75465e34318ff64fb24c6", + "transactionHash": "0x9a1262d8d385b0ec7979a9141249dc703f74e98cf9c9f4060ad16ecd92f67dad" }, "1527316019334": { "events": {}, "links": {}, - "address": "0x2ee2d6323f9595963caece8280b6e6a81d4f9d49", - "transactionHash": "0x44896356866fb32a30fe5b74e2e5b2ce3383ffef7f3190f5f10a98b5fa4406de" + "address": "0x268518ad20d3faa34e233e8685d726ad2ec10b4b", + "transactionHash": "0x3b404f9bf2e58e33eeaba336d431c1d819a719b0765dfe2a33831b97d9036a2e" + }, + "1527420696956": { + "events": {}, + "links": {}, + "address": "0x99d67fc14c6d86cf065a844515916bfbb3ec764d", + "transactionHash": "0x05db0b84de2c38f22917f5a5372ee159959c99ae966e9b07fb99c11a3e099d4d" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-26T06:28:28.363Z" + "updatedAt": "2018-05-27T11:31:46.341Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/StateChannelModule.json b/safe-contracts/build/contracts/StateChannelModule.json index 860bda1b..04194abe 100644 --- a/safe-contracts/build/contracts/StateChannelModule.json +++ b/safe-contracts/build/contracts/StateChannelModule.json @@ -163,51 +163,51 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610e5a806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806319604647146100935780632b50004114610206578063481c6a75146102cc5780637de7edef14610323578063a3f4df7e14610366578063ba0bba40146103f6578063e52cb36a1461040d578063ffa1ad7414610456575b600080fd5b34801561009f57600080fd5b50610204600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506104e6565b005b34801561021257600080fd5b506102ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610705565b60405180826000191660001916815260200191505060405180910390f35b3480156102d857600080fd5b506102e1610921565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032f57600080fd5b50610364600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610947565b005b34801561037257600080fd5b5061037b610a0c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103bb5780820151818401526020810190506103a0565b50505050905090810190601f1680156103e85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561040257600080fd5b5061040b610a45565b005b34801561041957600080fd5b5061043c6004803603810190808035600019169060200190929190505050610a4f565b604051808215151515815260200191505060405180910390f35b34801561046257600080fd5b5061046b610a6f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104ab578082015181840152602081019050610490565b50505050905090810190601f1680156104d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104f58989898989610705565b905060026000826000191660001916815260200190815260200160002060009054906101000a900460ff1615151561052c57600080fd5b61053881858585610aa8565b600160026000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78a8a8a8a6040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561062557fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b8381101561066557808201518184015260208101905061064a565b50505050905090810190601f1680156106925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156106b457600080fd5b505af11580156106c8573d6000803e3d6000fd5b505050506040513d60208110156106de57600080fd5b810190808051906020019092919050505015156106fa57600080fd5b505050505050505050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b6020831015156108a65780518252602082019150602081019050602083039250610881565b6001836020036101000a0380198251168184511680821785525050505050509050018360028111156108d457fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109a357600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156109c957600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610a4d610da4565b565b60026020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610b3857600080fd5b505af1158015610b4c573d6000803e3d6000fd5b505050506040513d6020811015610b6257600080fd5b81019080805190602001909291905050509050600091505b8060ff16821015610d9a576001888884815181101515610b9657fe5b906020019060200201518885815181101515610bae57fe5b906020019060200201518886815181101515610bc657fe5b90602001906020020151604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015610c41573d6000803e3d6000fd5b505050602060405103519250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610d0a57600080fd5b505af1158015610d1e573d6000803e3d6000fd5b505050506040513d6020811015610d3457600080fd5b81019080805190602001909291905050501515610d5057600080fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515610d8a57600080fd5b8293508180600101925050610b7a565b5050505050505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610deb57600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a72305820a4183092cbe869320dacc60413aa4faaa13aa1779d1603c8db847137fdfc7df10029", - "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806319604647146100935780632b50004114610206578063481c6a75146102cc5780637de7edef14610323578063a3f4df7e14610366578063ba0bba40146103f6578063e52cb36a1461040d578063ffa1ad7414610456575b600080fd5b34801561009f57600080fd5b50610204600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506104e6565b005b34801561021257600080fd5b506102ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610705565b60405180826000191660001916815260200191505060405180910390f35b3480156102d857600080fd5b506102e1610921565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032f57600080fd5b50610364600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610947565b005b34801561037257600080fd5b5061037b610a0c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103bb5780820151818401526020810190506103a0565b50505050905090810190601f1680156103e85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561040257600080fd5b5061040b610a45565b005b34801561041957600080fd5b5061043c6004803603810190808035600019169060200190929190505050610a4f565b604051808215151515815260200191505060405180910390f35b34801561046257600080fd5b5061046b610a6f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104ab578082015181840152602081019050610490565b50505050905090810190601f1680156104d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104f58989898989610705565b905060026000826000191660001916815260200190815260200160002060009054906101000a900460ff1615151561052c57600080fd5b61053881858585610aa8565b600160026000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78a8a8a8a6040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561062557fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b8381101561066557808201518184015260208101905061064a565b50505050905090810190601f1680156106925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156106b457600080fd5b505af11580156106c8573d6000803e3d6000fd5b505050506040513d60208110156106de57600080fd5b810190808051906020019092919050505015156106fa57600080fd5b505050505050505050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b6020831015156108a65780518252602082019150602081019050602083039250610881565b6001836020036101000a0380198251168184511680821785525050505050509050018360028111156108d457fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109a357600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156109c957600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610a4d610da4565b565b60026020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610b3857600080fd5b505af1158015610b4c573d6000803e3d6000fd5b505050506040513d6020811015610b6257600080fd5b81019080805190602001909291905050509050600091505b8060ff16821015610d9a576001888884815181101515610b9657fe5b906020019060200201518885815181101515610bae57fe5b906020019060200201518886815181101515610bc657fe5b90602001906020020151604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015610c41573d6000803e3d6000fd5b505050602060405103519250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610d0a57600080fd5b505af1158015610d1e573d6000803e3d6000fd5b505050506040513d6020811015610d3457600080fd5b81019080805190602001909291905050501515610d5057600080fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515610d8a57600080fd5b8293508180600101925050610b7a565b5050505050505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610deb57600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a72305820a4183092cbe869320dacc60413aa4faaa13aa1779d1603c8db847137fdfc7df10029", - "sourceMap": "269:2840:13:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;269:2840:13;;;;;;;", - "deployedSourceMap": "269:2840:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1265:602;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1265:602:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2796:311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2796:311:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:5;;;;;;;;;;;;;;;;;;;;;;;;;;;626:208:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;314:52:13;;8:9:-1;5:2;;;30:1;27;20:12;5:2;314:52:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;314:52:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;601:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;601:65:13;;;;;;510:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;510:43:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;372:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;372:40:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;372:40:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1265:602;1512:23;1538:53;1557:2;1561:5;1568:4;1574:9;1585:5;1538:18;:53::i;:::-;1512:79;;1610:10;:27;1621:15;1610:27;;;;;;;;;;;;;;;;;;;;;;;;;;;1609:28;1601:37;;;;;;;;1648:35;1658:15;1675:1;1678;1681;1648:9;:35::i;:::-;1776:4;1746:10;:27;1757:15;1746:27;;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1798:7;;;;;;;;;;;:33;;;1832:2;1836:5;1843:4;1849:9;1798:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1798:61:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1798:61:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1798:61:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1798:61:13;;;;;;;;;;;;;;;;1790:70;;;;;;;;1265:602;;;;;;;;;:::o;2796:311::-;2999:7;3044:4;3039:10;;3056:1;3051:7;;3060:4;3066:2;3070:5;3077:4;3083:9;3094:5;3029:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3029:71:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3022:78;;2796:311;;;;;;;:::o;262:28:5:-;;;;;;;;;;;;;:::o;626:208:4:-;359:7:5;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;791:1:4;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o;314:52:13:-;;;;;;;;;;;;;;;;;;;;:::o;601:65::-;647:12;:10;:12::i;:::-;601:65::o;510:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;372:40::-;;;;;;;;;;;;;;;;;;;;:::o;1873:645::-;2050:17;2090:20;2120:9;2139:15;2078:1;2050:30;;2170:7;;;;;;;;;;;2157:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2157:36:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2157:36:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2157:36:13;;;;;;;;;;;;;;;;2139:54;;2254:1;2250:5;;2245:267;2261:9;2257:13;;:1;:13;2245:267;;;2306:44;2316:15;2333:1;2335;2333:4;;;;;;;;;;;;;;;;;;2339:1;2341;2339:4;;;;;;;;;;;;;;;;;;2345:1;2347;2345:4;;;;;;;;;;;;;;;;;;2306:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2306:44:13;;;;;;;;2291:59;;2385:7;;;;;;;;;;;2372:29;;;2402:12;2372:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2372:43:13;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2372:43:13;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2372:43:13;;;;;;;;;;;;;;;;2364:52;;;;;;;;2453:9;2438:24;;:12;:24;;;2430:33;;;;;;;;2489:12;2477:24;;2272:3;;;;;;;2245:267;;;1873:645;;;;;;;;:::o;392:268:5:-;606:1;594:7;;;;;;;;;;;586:21;;;578:30;;;;;;;;642:10;618:7;;:35;;;;;;;;;;;;;;;;;;392:268::o", - "source": "pragma solidity 0.4.23;\nimport \"../Module.sol\";\nimport \"../OwnerManager.sol\";\n\n\n/// @title Gnosis Safe State Module - A module that allows interaction with statechannels.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract StateChannelModule is Module {\n\n string public constant NAME = \"State Channel Module\";\n string public constant VERSION = \"0.0.1\";\n\n // isExecuted mapping allows to check if a transaction (by hash) was already executed.\n mapping (bytes32 => bool) public isExecuted;\n\n /// @dev Setup function sets manager\n function setup()\n public\n {\n setManager();\n }\n\n /// @dev Allows to execute a Safe transaction confirmed by required number of owners.\n /// @param to Destination address of Safe transaction.\n /// @param value Ether value of Safe transaction.\n /// @param data Data payload of Safe transaction.\n /// @param operation Operation type of Safe transaction.\n /// @param nonce Nonce used for this Safe transaction.\n /// @param v Array of signature V values sorted by owner addresses.\n /// @param r Array of signature R values sorted by owner addresses.\n /// @param s Array of signature S values sorted by owner addresses.\n function execTransaction(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce,\n uint8[] v, \n bytes32[] r, \n bytes32[] s\n )\n public\n {\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n require(!isExecuted[transactionHash]);\n checkHash(transactionHash, v, r, s);\n // Mark as executed and execute transaction.\n isExecuted[transactionHash] = true;\n require(manager.execTransactionFromModule(to, value, data, operation));\n }\n\n function checkHash(bytes32 transactionHash, uint8[] v, bytes32[] r, bytes32[] s)\n internal\n view\n {\n // There cannot be an owner with address 0.\n address lastOwner = address(0);\n address currentOwner;\n uint256 i;\n uint8 threshold = OwnerManager(manager).getThreshold();\n // Validate threshold is reached.\n for (i = 0; i < threshold; i++) {\n currentOwner = ecrecover(transactionHash, v[i], r[i], s[i]);\n require(OwnerManager(manager).isOwner(currentOwner));\n require(currentOwner > lastOwner);\n lastOwner = currentOwner;\n }\n }\n\n /// @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 nonce Transaction nonce.\n /// @return Transaction hash.\n function getTransactionHash(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n view\n returns (bytes32)\n {\n return keccak256(byte(0x19), byte(0), this, to, value, data, operation, nonce);\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50610ec6806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806319604647146100935780632b50004114610206578063481c6a75146102cc5780637de7edef14610323578063a3f4df7e14610366578063ba0bba40146103f6578063e52cb36a1461040d578063ffa1ad7414610456575b600080fd5b34801561009f57600080fd5b50610204600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506104e6565b005b34801561021257600080fd5b506102ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610705565b60405180826000191660001916815260200191505060405180910390f35b3480156102d857600080fd5b506102e161098d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032f57600080fd5b50610364600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109b3565b005b34801561037257600080fd5b5061037b610a78565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103bb5780820151818401526020810190506103a0565b50505050905090810190601f1680156103e85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561040257600080fd5b5061040b610ab1565b005b34801561041957600080fd5b5061043c6004803603810190808035600019169060200190929190505050610abb565b604051808215151515815260200191505060405180910390f35b34801561046257600080fd5b5061046b610adb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104ab578082015181840152602081019050610490565b50505050905090810190601f1680156104d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104f58989898989610705565b905060026000826000191660001916815260200190815260200160002060009054906101000a900460ff1615151561052c57600080fd5b61053881858585610b14565b600160026000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78a8a8a8a6040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561062557fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b8381101561066557808201518184015260208101905061064a565b50505050905090810190601f1680156106925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156106b457600080fd5b505af11580156106c8573d6000803e3d6000fd5b505050506040513d60208110156106de57600080fd5b810190808051906020019092919050505015156106fa57600080fd5b505050505050505050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b6020831015156108a95780518252602082019150602081019050602083039250610884565b6001836020036101000a0380198251168184511680821785525050505050509050018360028111156108d757fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156109555780518252602082019150602081019050602083039250610930565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a0f57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610a3557600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610ab9610e10565b565b60026020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610ba457600080fd5b505af1158015610bb8573d6000803e3d6000fd5b505050506040513d6020811015610bce57600080fd5b81019080805190602001909291905050509050600091505b8060ff16821015610e06576001888884815181101515610c0257fe5b906020019060200201518885815181101515610c1a57fe5b906020019060200201518886815181101515610c3257fe5b90602001906020020151604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015610cad573d6000803e3d6000fd5b505050602060405103519250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610d7657600080fd5b505af1158015610d8a573d6000803e3d6000fd5b505050506040513d6020811015610da057600080fd5b81019080805190602001909291905050501515610dbc57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515610df657600080fd5b8293508180600101925050610be6565b5050505050505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e5757600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a72305820453c6630df1510723e7c76ad0ed06d384408c3c25066f1e25e55db38ef5842e90029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806319604647146100935780632b50004114610206578063481c6a75146102cc5780637de7edef14610323578063a3f4df7e14610366578063ba0bba40146103f6578063e52cb36a1461040d578063ffa1ad7414610456575b600080fd5b34801561009f57600080fd5b50610204600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506104e6565b005b34801561021257600080fd5b506102ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610705565b60405180826000191660001916815260200191505060405180910390f35b3480156102d857600080fd5b506102e161098d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561032f57600080fd5b50610364600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109b3565b005b34801561037257600080fd5b5061037b610a78565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103bb5780820151818401526020810190506103a0565b50505050905090810190601f1680156103e85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561040257600080fd5b5061040b610ab1565b005b34801561041957600080fd5b5061043c6004803603810190808035600019169060200190929190505050610abb565b604051808215151515815260200191505060405180910390f35b34801561046257600080fd5b5061046b610adb565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104ab578082015181840152602081019050610490565b50505050905090810190601f1680156104d85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104f58989898989610705565b905060026000826000191660001916815260200190815260200160002060009054906101000a900460ff1615151561052c57600080fd5b61053881858585610b14565b600160026000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78a8a8a8a6040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561062557fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b8381101561066557808201518184015260208101905061064a565b50505050905090810190601f1680156106925780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156106b457600080fd5b505af11580156106c8573d6000803e3d6000fd5b505050506040513d60208110156106de57600080fd5b810190808051906020019092919050505015156106fa57600080fd5b505050505050505050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b6020831015156108a95780518252602082019150602081019050602083039250610884565b6001836020036101000a0380198251168184511680821785525050505050509050018360028111156108d757fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156109555780518252602082019150602081019050602083039250610930565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a0f57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610a3557600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610ab9610e10565b565b60026020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610ba457600080fd5b505af1158015610bb8573d6000803e3d6000fd5b505050506040513d6020811015610bce57600080fd5b81019080805190602001909291905050509050600091505b8060ff16821015610e06576001888884815181101515610c0257fe5b906020019060200201518885815181101515610c1a57fe5b906020019060200201518886815181101515610c3257fe5b90602001906020020151604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015610cad573d6000803e3d6000fd5b505050602060405103519250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610d7657600080fd5b505af1158015610d8a573d6000803e3d6000fd5b505050506040513d6020811015610da057600080fd5b81019080805190602001909291905050501515610dbc57600080fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515610df657600080fd5b8293508180600101925050610be6565b5050505050505050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e5757600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a72305820453c6630df1510723e7c76ad0ed06d384408c3c25066f1e25e55db38ef5842e90029", + "sourceMap": "269:2858:19:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;269:2858:19;;;;;;;", + "deployedSourceMap": "269:2858:19:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1265:602;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1265:602:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2796:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2796:329:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;626:208:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;314:52:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;314:52:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;314:52:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;601:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;601:65:19;;;;;;510:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;510:43:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;372:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;372:40:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;372:40:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1265:602;1512:23;1538:53;1557:2;1561:5;1568:4;1574:9;1585:5;1538:18;:53::i;:::-;1512:79;;1610:10;:27;1621:15;1610:27;;;;;;;;;;;;;;;;;;;;;;;;;;;1609:28;1601:37;;;;;;;;1648:35;1658:15;1675:1;1678;1681;1648:9;:35::i;:::-;1776:4;1746:10;:27;1757:15;1746:27;;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1798:7;;;;;;;;;;;:33;;;1832:2;1836:5;1843:4;1849:9;1798:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1798:61:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1798:61:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1798:61:19;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1798:61:19;;;;;;;;;;;;;;;;1790:70;;;;;;;;1265:602;;;;;;;;;:::o;2796:329::-;2999:7;3061:4;3056:10;;3073:1;3068:7;;3077:4;3083:2;3087:5;3094:4;3100:9;3111:5;3039:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3039:78:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3039:78:19;;;3029:89;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3029:89:19;;;;;;;;;;;;;;;;3022:96;;2796:329;;;;;;;:::o;262:28:7:-;;;;;;;;;;;;;:::o;626:208:5:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;791:1:5;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o;314:52:19:-;;;;;;;;;;;;;;;;;;;;:::o;601:65::-;647:12;:10;:12::i;:::-;601:65::o;510:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;372:40::-;;;;;;;;;;;;;;;;;;;;:::o;1873:645::-;2050:17;2090:20;2120:9;2139:15;2078:1;2050:30;;2170:7;;;;;;;;;;;2157:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2157:36:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2157:36:19;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2157:36:19;;;;;;;;;;;;;;;;2139:54;;2254:1;2250:5;;2245:267;2261:9;2257:13;;:1;:13;2245:267;;;2306:44;2316:15;2333:1;2335;2333:4;;;;;;;;;;;;;;;;;;2339:1;2341;2339:4;;;;;;;;;;;;;;;;;;2345:1;2347;2345:4;;;;;;;;;;;;;;;;;;2306:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2306:44:19;;;;;;;;2291:59;;2385:7;;;;;;;;;;;2372:29;;;2402:12;2372:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2372:43:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2372:43:19;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2372:43:19;;;;;;;;;;;;;;;;2364:52;;;;;;;;2453:9;2438:24;;:12;:24;;;2430:33;;;;;;;;2489:12;2477:24;;2272:3;;;;;;;2245:267;;;1873:645;;;;;;;;:::o;392:268:7:-;606:1;594:7;;;;;;;;;;;586:21;;;578:30;;;;;;;;642:10;618:7;;:35;;;;;;;;;;;;;;;;;;392:268::o", + "source": "pragma solidity 0.4.24;\nimport \"../Module.sol\";\nimport \"../OwnerManager.sol\";\n\n\n/// @title Gnosis Safe State Module - A module that allows interaction with statechannels.\n/// @author Stefan George - \n/// @author Richard Meissner - \ncontract StateChannelModule is Module {\n\n string public constant NAME = \"State Channel Module\";\n string public constant VERSION = \"0.0.1\";\n\n // isExecuted mapping allows to check if a transaction (by hash) was already executed.\n mapping (bytes32 => bool) public isExecuted;\n\n /// @dev Setup function sets manager\n function setup()\n public\n {\n setManager();\n }\n\n /// @dev Allows to execute a Safe transaction confirmed by required number of owners.\n /// @param to Destination address of Safe transaction.\n /// @param value Ether value of Safe transaction.\n /// @param data Data payload of Safe transaction.\n /// @param operation Operation type of Safe transaction.\n /// @param nonce Nonce used for this Safe transaction.\n /// @param v Array of signature V values sorted by owner addresses.\n /// @param r Array of signature R values sorted by owner addresses.\n /// @param s Array of signature S values sorted by owner addresses.\n function execTransaction(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce,\n uint8[] v, \n bytes32[] r, \n bytes32[] s\n )\n public\n {\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n require(!isExecuted[transactionHash]);\n checkHash(transactionHash, v, r, s);\n // Mark as executed and execute transaction.\n isExecuted[transactionHash] = true;\n require(manager.execTransactionFromModule(to, value, data, operation));\n }\n\n function checkHash(bytes32 transactionHash, uint8[] v, bytes32[] r, bytes32[] s)\n internal\n view\n {\n // There cannot be an owner with address 0.\n address lastOwner = address(0);\n address currentOwner;\n uint256 i;\n uint8 threshold = OwnerManager(manager).getThreshold();\n // Validate threshold is reached.\n for (i = 0; i < threshold; i++) {\n currentOwner = ecrecover(transactionHash, v[i], r[i], s[i]);\n require(OwnerManager(manager).isOwner(currentOwner));\n require(currentOwner > lastOwner);\n lastOwner = currentOwner;\n }\n }\n\n /// @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 nonce Transaction nonce.\n /// @return Transaction hash.\n function getTransactionHash(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce\n )\n public\n view\n returns (bytes32)\n {\n return keccak256(abi.encodePacked(byte(0x19), byte(0), this, to, value, data, operation, nonce));\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", "exportedSymbols": { "StateChannelModule": [ - 2234 + 2436 ] }, - "id": 2235, + "id": 2437, "nodeType": "SourceUnit", "nodes": [ { - "id": 2037, + "id": 2236, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:13" + "src": "0:23:19" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 2038, + "id": 2237, "nodeType": "ImportDirective", - "scope": 2235, - "sourceUnit": 622, - "src": "24:23:13", + "scope": 2437, + "sourceUnit": 751, + "src": "24:23:19", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 2039, + "id": 2238, "nodeType": "ImportDirective", - "scope": 2235, - "sourceUnit": 1344, - "src": "48:29:13", + "scope": 2437, + "sourceUnit": 1473, + "src": "48:29:19", "symbolAliases": [], "unitAlias": "" }, @@ -217,46 +217,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2040, + "id": 2239, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "300:6:13", + "referencedDeclaration": 750, + "src": "300:6:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, - "id": 2041, + "id": 2240, "nodeType": "InheritanceSpecifier", - "src": "300:6:13" + "src": "300:6:19" } ], "contractDependencies": [ - 580, - 621, - 1359 + 652, + 750, + 1619 ], "contractKind": "contract", "documentation": "@title Gnosis Safe State Module - A module that allows interaction with statechannels.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 2234, + "id": 2436, "linearizedBaseContracts": [ - 2234, - 621, - 580, - 1359 + 2436, + 750, + 652, + 1619 ], "name": "StateChannelModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2044, + "id": 2243, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2234, - "src": "314:52:13", + "scope": 2436, + "src": "314:52:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -264,10 +264,10 @@ "typeString": "string" }, "typeName": { - "id": 2042, + "id": 2241, "name": "string", "nodeType": "ElementaryTypeName", - "src": "314:6:13", + "src": "314:6:19", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -276,14 +276,14 @@ "value": { "argumentTypes": null, "hexValue": "5374617465204368616e6e656c204d6f64756c65", - "id": 2043, + "id": 2242, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "344:22:13", + "src": "344:22:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e66fa361bdba11103aaf2321b03707a79b393abf1f410f3f609398777fd3a713", @@ -295,11 +295,11 @@ }, { "constant": true, - "id": 2047, + "id": 2246, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2234, - "src": "372:40:13", + "scope": 2436, + "src": "372:40:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -307,10 +307,10 @@ "typeString": "string" }, "typeName": { - "id": 2045, + "id": 2244, "name": "string", "nodeType": "ElementaryTypeName", - "src": "372:6:13", + "src": "372:6:19", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -319,14 +319,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 2046, + "id": 2245, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "405:7:13", + "src": "405:7:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -338,11 +338,11 @@ }, { "constant": false, - "id": 2051, + "id": 2250, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 2234, - "src": "510:43:13", + "scope": 2436, + "src": "510:43:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -350,28 +350,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 2050, + "id": 2249, "keyType": { - "id": 2048, + "id": 2247, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "519:7:13", + "src": "519:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "510:25:13", + "src": "510:25:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 2049, + "id": 2248, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "530:4:13", + "src": "530:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -383,9 +383,9 @@ }, { "body": { - "id": 2057, + "id": 2256, "nodeType": "Block", - "src": "637:29:13", + "src": "637:29:19", "statements": [ { "expression": { @@ -393,18 +393,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2054, + "id": 2253, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "647:10:13", + "referencedDeclaration": 749, + "src": "647:10:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2055, + "id": 2254, "isConstant": false, "isLValue": false, "isPure": false, @@ -412,20 +412,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "647:12:13", + "src": "647:12:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2056, + "id": 2255, "nodeType": "ExpressionStatement", - "src": "647:12:13" + "src": "647:12:19" } ] }, "documentation": "@dev Setup function sets manager", - "id": 2058, + "id": 2257, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -433,42 +433,42 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2052, + "id": 2251, "nodeType": "ParameterList", "parameters": [], - "src": "615:2:13" + "src": "615:2:19" }, "payable": false, "returnParameters": { - "id": 2053, + "id": 2252, "nodeType": "ParameterList", "parameters": [], - "src": "637:0:13" + "src": "637:0:19" }, - "scope": 2234, - "src": "601:65:13", + "scope": 2436, + "src": "601:65:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2120, + "id": 2319, "nodeType": "Block", - "src": "1502:365:13", + "src": "1502:365:19", "statements": [ { "assignments": [ - 2081 + 2280 ], "declarations": [ { "constant": false, - "id": 2081, + "id": 2280, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1512:23:13", + "scope": 2320, + "src": "1512:23:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -476,10 +476,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2080, + "id": 2279, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1512:7:13", + "src": "1512:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -489,18 +489,18 @@ "visibility": "internal" } ], - "id": 2089, + "id": 2288, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2083, + "id": 2282, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2060, - "src": "1557:2:13", + "referencedDeclaration": 2259, + "src": "1557:2:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -508,12 +508,12 @@ }, { "argumentTypes": null, - "id": 2084, + "id": 2283, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2062, - "src": "1561:5:13", + "referencedDeclaration": 2261, + "src": "1561:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -521,12 +521,12 @@ }, { "argumentTypes": null, - "id": 2085, + "id": 2284, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2064, - "src": "1568:4:13", + "referencedDeclaration": 2263, + "src": "1568:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -534,25 +534,25 @@ }, { "argumentTypes": null, - "id": 2086, + "id": 2285, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, - "src": "1574:9:13", + "referencedDeclaration": 2265, + "src": "1574:9:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 2087, + "id": 2286, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2068, - "src": "1585:5:13", + "referencedDeclaration": 2267, + "src": "1585:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -574,7 +574,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -582,18 +582,18 @@ "typeString": "uint256" } ], - "id": 2082, + "id": 2281, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2233, - "src": "1538:18:13", + "referencedDeclaration": 2435, + "src": "1538:18:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" } }, - "id": 2088, + "id": 2287, "isConstant": false, "isLValue": false, "isPure": false, @@ -601,14 +601,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1538:53:13", + "src": "1538:53:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "1512:79:13" + "src": "1512:79:19" }, { "expression": { @@ -616,7 +616,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2094, + "id": 2293, "isConstant": false, "isLValue": false, "isPure": false, @@ -624,31 +624,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1609:28:13", + "src": "1609:28:19", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2091, + "id": 2290, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2051, - "src": "1610:10:13", + "referencedDeclaration": 2250, + "src": "1610:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2093, + "id": 2292, "indexExpression": { "argumentTypes": null, - "id": 2092, + "id": 2291, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2081, - "src": "1621:15:13", + "referencedDeclaration": 2280, + "src": "1621:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -659,7 +659,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1610:27:13", + "src": "1610:27:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -678,21 +678,21 @@ "typeString": "bool" } ], - "id": 2090, + "id": 2289, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1601:7:13", + "referencedDeclaration": 2601, + "src": "1601:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2095, + "id": 2294, "isConstant": false, "isLValue": false, "isPure": false, @@ -700,15 +700,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1601:37:13", + "src": "1601:37:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2096, + "id": 2295, "nodeType": "ExpressionStatement", - "src": "1601:37:13" + "src": "1601:37:19" }, { "expression": { @@ -716,12 +716,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2098, + "id": 2297, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2081, - "src": "1658:15:13", + "referencedDeclaration": 2280, + "src": "1658:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -729,12 +729,12 @@ }, { "argumentTypes": null, - "id": 2099, + "id": 2298, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2071, - "src": "1675:1:13", + "referencedDeclaration": 2270, + "src": "1675:1:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" @@ -742,12 +742,12 @@ }, { "argumentTypes": null, - "id": 2100, + "id": 2299, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2074, - "src": "1678:1:13", + "referencedDeclaration": 2273, + "src": "1678:1:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -755,12 +755,12 @@ }, { "argumentTypes": null, - "id": 2101, + "id": 2300, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2077, - "src": "1681:1:13", + "referencedDeclaration": 2276, + "src": "1681:1:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -786,18 +786,18 @@ "typeString": "bytes32[] memory" } ], - "id": 2097, + "id": 2296, "name": "checkHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2202, - "src": "1648:9:13", + "referencedDeclaration": 2401, + "src": "1648:9:19", "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" } }, - "id": 2102, + "id": 2301, "isConstant": false, "isLValue": false, "isPure": false, @@ -805,20 +805,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1648:35:13", + "src": "1648:35:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2103, + "id": 2302, "nodeType": "ExpressionStatement", - "src": "1648:35:13" + "src": "1648:35:19" }, { "expression": { "argumentTypes": null, - "id": 2108, + "id": 2307, "isConstant": false, "isLValue": false, "isPure": false, @@ -827,26 +827,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2104, + "id": 2303, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2051, - "src": "1746:10:13", + "referencedDeclaration": 2250, + "src": "1746:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2106, + "id": 2305, "indexExpression": { "argumentTypes": null, - "id": 2105, + "id": 2304, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2081, - "src": "1757:15:13", + "referencedDeclaration": 2280, + "src": "1757:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -857,7 +857,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1746:27:13", + "src": "1746:27:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -868,14 +868,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2107, + "id": 2306, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1776:4:13", + "src": "1776:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -883,15 +883,15 @@ }, "value": "true" }, - "src": "1746:34:13", + "src": "1746:34:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2109, + "id": 2308, "nodeType": "ExpressionStatement", - "src": "1746:34:13" + "src": "1746:34:19" }, { "expression": { @@ -902,12 +902,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2113, + "id": 2312, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2060, - "src": "1832:2:13", + "referencedDeclaration": 2259, + "src": "1832:2:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -915,12 +915,12 @@ }, { "argumentTypes": null, - "id": 2114, + "id": 2313, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2062, - "src": "1836:5:13", + "referencedDeclaration": 2261, + "src": "1836:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -928,12 +928,12 @@ }, { "argumentTypes": null, - "id": 2115, + "id": 2314, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2064, - "src": "1843:4:13", + "referencedDeclaration": 2263, + "src": "1843:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -941,14 +941,14 @@ }, { "argumentTypes": null, - "id": 2116, + "id": 2315, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, - "src": "1849:9:13", + "referencedDeclaration": 2265, + "src": "1849:9:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } } @@ -968,38 +968,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2111, + "id": 2310, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "1798:7:13", + "referencedDeclaration": 717, + "src": "1798:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } }, - "id": 2112, + "id": 2311, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 798, - "src": "1798:33:13", + "referencedDeclaration": 927, + "src": "1798:33:19", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2117, + "id": 2316, "isConstant": false, "isLValue": false, "isPure": false, @@ -1007,7 +1007,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1798:61:13", + "src": "1798:61:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1021,21 +1021,21 @@ "typeString": "bool" } ], - "id": 2110, + "id": 2309, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1790:7:13", + "referencedDeclaration": 2601, + "src": "1790:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2118, + "id": 2317, "isConstant": false, "isLValue": false, "isPure": false, @@ -1043,20 +1043,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1790:70:13", + "src": "1790:70:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2119, + "id": 2318, "nodeType": "ExpressionStatement", - "src": "1790:70:13" + "src": "1790:70:19" } ] }, "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 nonce Nonce used for this Safe transaction.\n @param v Array of signature V values sorted by owner addresses.\n @param r Array of signature R values sorted by owner addresses.\n @param s Array of signature S values sorted by owner addresses.", - "id": 2121, + "id": 2320, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1064,16 +1064,16 @@ "name": "execTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 2078, + "id": 2277, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2060, + "id": 2259, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1299:10:13", + "scope": 2320, + "src": "1299:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1081,10 +1081,10 @@ "typeString": "address" }, "typeName": { - "id": 2059, + "id": 2258, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1299:7:13", + "src": "1299:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1095,11 +1095,11 @@ }, { "constant": false, - "id": 2062, + "id": 2261, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1320:13:13", + "scope": 2320, + "src": "1320:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1107,10 +1107,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2061, + "id": 2260, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1320:7:13", + "src": "1320:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1121,11 +1121,11 @@ }, { "constant": false, - "id": 2064, + "id": 2263, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1344:10:13", + "scope": 2320, + "src": "1344:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1133,10 +1133,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2063, + "id": 2262, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1344:5:13", + "src": "1344:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1147,26 +1147,26 @@ }, { "constant": false, - "id": 2066, + "id": 2265, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1365:24:13", + "scope": 2320, + "src": "1365:24:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 2065, + "id": 2264, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "1365:14:13", + "referencedDeclaration": 29, + "src": "1365:14:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -1175,11 +1175,11 @@ }, { "constant": false, - "id": 2068, + "id": 2267, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1400:13:13", + "scope": 2320, + "src": "1400:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1187,10 +1187,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2067, + "id": 2266, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1400:7:13", + "src": "1400:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1201,11 +1201,11 @@ }, { "constant": false, - "id": 2071, + "id": 2270, "name": "v", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1423:9:13", + "scope": 2320, + "src": "1423:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1214,19 +1214,19 @@ }, "typeName": { "baseType": { - "id": 2069, + "id": 2268, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1423:5:13", + "src": "1423:5:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 2070, + "id": 2269, "length": null, "nodeType": "ArrayTypeName", - "src": "1423:7:13", + "src": "1423:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[]" @@ -1237,11 +1237,11 @@ }, { "constant": false, - "id": 2074, + "id": 2273, "name": "r", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1443:11:13", + "scope": 2320, + "src": "1443:11:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1250,19 +1250,19 @@ }, "typeName": { "baseType": { - "id": 2072, + "id": 2271, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1443:7:13", + "src": "1443:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2073, + "id": 2272, "length": null, "nodeType": "ArrayTypeName", - "src": "1443:9:13", + "src": "1443:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -1273,11 +1273,11 @@ }, { "constant": false, - "id": 2077, + "id": 2276, "name": "s", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1465:11:13", + "scope": 2320, + "src": "1465:11:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1286,19 +1286,19 @@ }, "typeName": { "baseType": { - "id": 2075, + "id": 2274, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1465:7:13", + "src": "1465:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2076, + "id": 2275, "length": null, "nodeType": "ArrayTypeName", - "src": "1465:9:13", + "src": "1465:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -1308,39 +1308,39 @@ "visibility": "internal" } ], - "src": "1289:193:13" + "src": "1289:193:19" }, "payable": false, "returnParameters": { - "id": 2079, + "id": 2278, "nodeType": "ParameterList", "parameters": [], - "src": "1502:0:13" + "src": "1502:0:19" }, - "scope": 2234, - "src": "1265:602:13", + "scope": 2436, + "src": "1265:602:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2201, + "id": 2400, "nodeType": "Block", - "src": "1988:530:13", + "src": "1988:530:19", "statements": [ { "assignments": [ - 2136 + 2335 ], "declarations": [ { "constant": false, - "id": 2136, + "id": 2335, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 2202, - "src": "2050:17:13", + "scope": 2401, + "src": "2050:17:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1348,10 +1348,10 @@ "typeString": "address" }, "typeName": { - "id": 2135, + "id": 2334, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2050:7:13", + "src": "2050:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1361,21 +1361,21 @@ "visibility": "internal" } ], - "id": 2140, + "id": 2339, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 2138, + "id": 2337, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2078:1:13", + "src": "2078:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1391,20 +1391,20 @@ "typeString": "int_const 0" } ], - "id": 2137, + "id": 2336, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2070:7:13", + "src": "2070:7:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2139, + "id": 2338, "isConstant": false, "isLValue": false, "isPure": true, @@ -1412,25 +1412,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2070:10:13", + "src": "2070:10:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "2050:30:13" + "src": "2050:30:19" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 2142, + "id": 2341, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 2202, - "src": "2090:20:13", + "scope": 2401, + "src": "2090:20:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1438,10 +1438,10 @@ "typeString": "address" }, "typeName": { - "id": 2141, + "id": 2340, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2090:7:13", + "src": "2090:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1451,21 +1451,21 @@ "visibility": "internal" } ], - "id": 2143, + "id": 2342, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "2090:20:13" + "src": "2090:20:19" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 2145, + "id": 2344, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2202, - "src": "2120:9:13", + "scope": 2401, + "src": "2120:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1473,10 +1473,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2144, + "id": 2343, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2120:7:13", + "src": "2120:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1486,23 +1486,23 @@ "visibility": "internal" } ], - "id": 2146, + "id": 2345, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "2120:9:13" + "src": "2120:9:19" }, { "assignments": [ - 2148 + 2347 ], "declarations": [ { "constant": false, - "id": 2148, + "id": 2347, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 2202, - "src": "2139:15:13", + "scope": 2401, + "src": "2139:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1510,10 +1510,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2147, + "id": 2346, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2139:5:13", + "src": "2139:5:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1523,7 +1523,7 @@ "visibility": "internal" } ], - "id": 2154, + "id": 2353, "initialValue": { "argumentTypes": null, "arguments": [], @@ -1534,14 +1534,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2150, + "id": 2349, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "2170:7:13", + "referencedDeclaration": 717, + "src": "2170:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } } @@ -1549,22 +1549,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } ], - "id": 2149, + "id": 2348, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2157:12:13", + "referencedDeclaration": 1472, + "src": "2157:12:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1343_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1472_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2151, + "id": 2350, "isConstant": false, "isLValue": false, "isPure": false, @@ -1572,27 +1572,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2157:21:13", + "src": "2157:21:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1343", + "typeIdentifier": "t_contract$_OwnerManager_$1472", "typeString": "contract OwnerManager" } }, - "id": 2152, + "id": 2351, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getThreshold", "nodeType": "MemberAccess", - "referencedDeclaration": 1279, - "src": "2157:34:13", + "referencedDeclaration": 1408, + "src": "2157:34:19", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 2153, + "id": 2352, "isConstant": false, "isLValue": false, "isPure": false, @@ -1600,37 +1600,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2157:36:13", + "src": "2157:36:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "2139:54:13" + "src": "2139:54:19" }, { "body": { - "id": 2199, + "id": 2398, "nodeType": "Block", - "src": "2277:235:13", + "src": "2277:235:19", "statements": [ { "expression": { "argumentTypes": null, - "id": 2178, + "id": 2377, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2165, + "id": 2364, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2291:12:13", + "referencedDeclaration": 2341, + "src": "2291:12:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1643,12 +1643,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2167, + "id": 2366, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2123, - "src": "2316:15:13", + "referencedDeclaration": 2322, + "src": "2316:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1658,26 +1658,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2168, + "id": 2367, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2126, - "src": "2333:1:13", + "referencedDeclaration": 2325, + "src": "2333:1:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" } }, - "id": 2170, + "id": 2369, "indexExpression": { "argumentTypes": null, - "id": 2169, + "id": 2368, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "2335:1:13", + "referencedDeclaration": 2344, + "src": "2335:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1688,7 +1688,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2333:4:13", + "src": "2333:4:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1698,26 +1698,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2171, + "id": 2370, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "2339:1:13", + "referencedDeclaration": 2328, + "src": "2339:1:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 2173, + "id": 2372, "indexExpression": { "argumentTypes": null, - "id": 2172, + "id": 2371, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "2341:1:13", + "referencedDeclaration": 2344, + "src": "2341:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1728,7 +1728,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2339:4:13", + "src": "2339:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1738,26 +1738,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2174, + "id": 2373, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, - "src": "2345:1:13", + "referencedDeclaration": 2331, + "src": "2345:1:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 2176, + "id": 2375, "indexExpression": { "argumentTypes": null, - "id": 2175, + "id": 2374, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "2347:1:13", + "referencedDeclaration": 2344, + "src": "2347:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1768,7 +1768,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2345:4:13", + "src": "2345:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1794,18 +1794,18 @@ "typeString": "bytes32" } ], - "id": 2166, + "id": 2365, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2388, - "src": "2306:9:13", + "referencedDeclaration": 2590, + "src": "2306:9:19", "typeDescriptions": { "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" } }, - "id": 2177, + "id": 2376, "isConstant": false, "isLValue": false, "isPure": false, @@ -1813,21 +1813,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2306:44:13", + "src": "2306:44:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2291:59:13", + "src": "2291:59:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2179, + "id": 2378, "nodeType": "ExpressionStatement", - "src": "2291:59:13" + "src": "2291:59:19" }, { "expression": { @@ -1838,12 +1838,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2185, + "id": 2384, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2402:12:13", + "referencedDeclaration": 2341, + "src": "2402:12:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1862,14 +1862,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2182, + "id": 2381, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "2385:7:13", + "referencedDeclaration": 717, + "src": "2385:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } } @@ -1877,22 +1877,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } ], - "id": 2181, + "id": 2380, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2372:12:13", + "referencedDeclaration": 1472, + "src": "2372:12:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1343_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1472_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2183, + "id": 2382, "isConstant": false, "isLValue": false, "isPure": false, @@ -1900,27 +1900,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2372:21:13", + "src": "2372:21:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1343", + "typeIdentifier": "t_contract$_OwnerManager_$1472", "typeString": "contract OwnerManager" } }, - "id": 2184, + "id": 2383, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1293, - "src": "2372:29:13", + "referencedDeclaration": 1422, + "src": "2372:29:19", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 2186, + "id": 2385, "isConstant": false, "isLValue": false, "isPure": false, @@ -1928,7 +1928,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2372:43:13", + "src": "2372:43:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1942,21 +1942,21 @@ "typeString": "bool" } ], - "id": 2180, + "id": 2379, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2364:7:13", + "referencedDeclaration": 2601, + "src": "2364:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2187, + "id": 2386, "isConstant": false, "isLValue": false, "isPure": false, @@ -1964,15 +1964,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2364:52:13", + "src": "2364:52:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2188, + "id": 2387, "nodeType": "ExpressionStatement", - "src": "2364:52:13" + "src": "2364:52:19" }, { "expression": { @@ -1984,19 +1984,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2192, + "id": 2391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2190, + "id": 2389, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2438:12:13", + "referencedDeclaration": 2341, + "src": "2438:12:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2006,18 +2006,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 2191, + "id": 2390, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2136, - "src": "2453:9:13", + "referencedDeclaration": 2335, + "src": "2453:9:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2438:24:13", + "src": "2438:24:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2031,21 +2031,21 @@ "typeString": "bool" } ], - "id": 2189, + "id": 2388, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2430:7:13", + "referencedDeclaration": 2601, + "src": "2430:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2193, + "id": 2392, "isConstant": false, "isLValue": false, "isPure": false, @@ -2053,32 +2053,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2430:33:13", + "src": "2430:33:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2194, + "id": 2393, "nodeType": "ExpressionStatement", - "src": "2430:33:13" + "src": "2430:33:19" }, { "expression": { "argumentTypes": null, - "id": 2197, + "id": 2396, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2195, + "id": 2394, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2136, - "src": "2477:9:13", + "referencedDeclaration": 2335, + "src": "2477:9:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2088,26 +2088,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2196, + "id": 2395, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2489:12:13", + "referencedDeclaration": 2341, + "src": "2489:12:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2477:24:13", + "src": "2477:24:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2198, + "id": 2397, "nodeType": "ExpressionStatement", - "src": "2477:24:13" + "src": "2477:24:19" } ] }, @@ -2117,19 +2117,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2161, + "id": 2360, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2159, + "id": 2358, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "2257:1:13", + "referencedDeclaration": 2344, + "src": "2257:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2139,40 +2139,40 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 2160, + "id": 2359, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2148, - "src": "2261:9:13", + "referencedDeclaration": 2347, + "src": "2261:9:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "2257:13:13", + "src": "2257:13:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2200, + "id": 2399, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 2157, + "id": 2356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2155, + "id": 2354, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "2250:1:13", + "referencedDeclaration": 2344, + "src": "2250:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2183,14 +2183,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2156, + "id": 2355, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2254:1:13", + "src": "2254:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2198,20 +2198,20 @@ }, "value": "0" }, - "src": "2250:5:13", + "src": "2250:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2158, + "id": 2357, "nodeType": "ExpressionStatement", - "src": "2250:5:13" + "src": "2250:5:19" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2163, + "id": 2362, "isConstant": false, "isLValue": false, "isPure": false, @@ -2219,15 +2219,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2272:3:13", + "src": "2272:3:19", "subExpression": { "argumentTypes": null, - "id": 2162, + "id": 2361, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "2272:1:13", + "referencedDeclaration": 2344, + "src": "2272:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2238,17 +2238,17 @@ "typeString": "uint256" } }, - "id": 2164, + "id": 2363, "nodeType": "ExpressionStatement", - "src": "2272:3:13" + "src": "2272:3:19" }, "nodeType": "ForStatement", - "src": "2245:267:13" + "src": "2245:267:19" } ] }, "documentation": null, - "id": 2202, + "id": 2401, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2256,16 +2256,16 @@ "name": "checkHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2133, + "id": 2332, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2123, + "id": 2322, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 2202, - "src": "1892:23:13", + "scope": 2401, + "src": "1892:23:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2273,10 +2273,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2122, + "id": 2321, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1892:7:13", + "src": "1892:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2287,11 +2287,11 @@ }, { "constant": false, - "id": 2126, + "id": 2325, "name": "v", "nodeType": "VariableDeclaration", - "scope": 2202, - "src": "1917:9:13", + "scope": 2401, + "src": "1917:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2300,19 +2300,19 @@ }, "typeName": { "baseType": { - "id": 2124, + "id": 2323, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1917:5:13", + "src": "1917:5:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 2125, + "id": 2324, "length": null, "nodeType": "ArrayTypeName", - "src": "1917:7:13", + "src": "1917:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[]" @@ -2323,11 +2323,11 @@ }, { "constant": false, - "id": 2129, + "id": 2328, "name": "r", "nodeType": "VariableDeclaration", - "scope": 2202, - "src": "1928:11:13", + "scope": 2401, + "src": "1928:11:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2336,19 +2336,19 @@ }, "typeName": { "baseType": { - "id": 2127, + "id": 2326, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1928:7:13", + "src": "1928:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2128, + "id": 2327, "length": null, "nodeType": "ArrayTypeName", - "src": "1928:9:13", + "src": "1928:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -2359,11 +2359,11 @@ }, { "constant": false, - "id": 2132, + "id": 2331, "name": "s", "nodeType": "VariableDeclaration", - "scope": 2202, - "src": "1941:11:13", + "scope": 2401, + "src": "1941:11:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2372,19 +2372,19 @@ }, "typeName": { "baseType": { - "id": 2130, + "id": 2329, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1941:7:13", + "src": "1941:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2131, + "id": 2330, "length": null, "nodeType": "ArrayTypeName", - "src": "1941:9:13", + "src": "1941:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -2394,26 +2394,26 @@ "visibility": "internal" } ], - "src": "1891:62:13" + "src": "1891:62:19" }, "payable": false, "returnParameters": { - "id": 2134, + "id": 2333, "nodeType": "ParameterList", "parameters": [], - "src": "1988:0:13" + "src": "1988:0:19" }, - "scope": 2234, - "src": "1873:645:13", + "scope": 2436, + "src": "1873:645:19", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2232, + "id": 2434, "nodeType": "Block", - "src": "3012:95:13", + "src": "3012:113:19", "statements": [ { "expression": { @@ -2424,239 +2424,291 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "30783139", - "id": 2219, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30783139", + "id": 2420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3061:4:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + }, + "value": "0x19" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + } + ], + "id": 2419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3056:4:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 2421, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "3044:4:13", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "3056:10:19", "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" + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" } - ], - "id": 2218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3039:4:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" }, - "typeName": "byte" - }, - "id": 2220, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3039:10:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, - "hexValue": "30", - "id": 2222, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3073:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3068:4:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 2424, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "3056:1:13", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "3068:7:19", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "id": 2425, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2649, + "src": "3077:4:19", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StateChannelModule_$2436", + "typeString": "contract StateChannelModule" + } + }, + { + "argumentTypes": null, + "id": 2426, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2403, + "src": "3083:2:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2427, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2405, + "src": "3087:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2428, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2407, + "src": "3094:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 2429, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2409, + "src": "3100:9:19", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "id": 2430, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2411, + "src": "3111:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_contract$_StateChannelModule_$2436", + "typeString": "contract StateChannelModule" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 2221, + "expression": { + "argumentTypes": null, + "id": 2417, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2585, + "src": "3039:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2418, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3051:4:13", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3039:16:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } }, - "id": 2223, + "id": 2431, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "typeConversion", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3051:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 2224, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2435, - "src": "3060:4:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StateChannelModule_$2234", - "typeString": "contract StateChannelModule" - } - }, - { - "argumentTypes": null, - "id": 2225, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2204, - "src": "3066:2:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2226, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2206, - "src": "3070:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2227, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "3077:4:13", + "src": "3039:78:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } - }, - { - "argumentTypes": null, - "id": 2228, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2210, - "src": "3083:9:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 2229, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2212, - "src": "3094:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } } ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_StateChannelModule_$2234", - "typeString": "contract StateChannelModule" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } ], - "id": 2217, + "id": 2416, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2390, - "src": "3029:9:13", + "referencedDeclaration": 2592, + "src": "3029:9:19", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 2230, + "id": 2432, "isConstant": false, "isLValue": false, "isPure": false, @@ -2664,21 +2716,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3029:71:13", + "src": "3029:89:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 2216, - "id": 2231, + "functionReturnParameters": 2415, + "id": 2433, "nodeType": "Return", - "src": "3022:78:13" + "src": "3022:96:19" } ] }, "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 nonce Transaction nonce.\n @return Transaction hash.", - "id": 2233, + "id": 2435, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2686,16 +2738,16 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2213, + "id": 2412, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2204, + "id": 2403, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2233, - "src": "2833:10:13", + "scope": 2435, + "src": "2833:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2703,10 +2755,10 @@ "typeString": "address" }, "typeName": { - "id": 2203, + "id": 2402, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2833:7:13", + "src": "2833:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2717,11 +2769,11 @@ }, { "constant": false, - "id": 2206, + "id": 2405, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2233, - "src": "2854:13:13", + "scope": 2435, + "src": "2854:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2729,10 +2781,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2205, + "id": 2404, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2854:7:13", + "src": "2854:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2743,11 +2795,11 @@ }, { "constant": false, - "id": 2208, + "id": 2407, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2233, - "src": "2878:10:13", + "scope": 2435, + "src": "2878:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2755,10 +2807,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2207, + "id": 2406, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2878:5:13", + "src": "2878:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2769,26 +2821,26 @@ }, { "constant": false, - "id": 2210, + "id": 2409, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 2233, - "src": "2899:24:13", + "scope": 2435, + "src": "2899:24:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 2209, + "id": 2408, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "2899:14:13", + "referencedDeclaration": 29, + "src": "2899:14:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -2797,11 +2849,11 @@ }, { "constant": false, - "id": 2212, + "id": 2411, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 2233, - "src": "2934:13:13", + "scope": 2435, + "src": "2934:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2809,10 +2861,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2211, + "id": 2410, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2934:7:13", + "src": "2934:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2822,20 +2874,20 @@ "visibility": "internal" } ], - "src": "2823:130:13" + "src": "2823:130:19" }, "payable": false, "returnParameters": { - "id": 2216, + "id": 2415, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2215, + "id": 2414, "name": "", "nodeType": "VariableDeclaration", - "scope": 2233, - "src": "2999:7:13", + "scope": 2435, + "src": "2999:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2843,10 +2895,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2214, + "id": 2413, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2999:7:13", + "src": "2999:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2856,60 +2908,60 @@ "visibility": "internal" } ], - "src": "2998:9:13" + "src": "2998:9:19" }, - "scope": 2234, - "src": "2796:311:13", + "scope": 2436, + "src": "2796:329:19", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 2235, - "src": "269:2840:13" + "scope": 2437, + "src": "269:2858:19" } ], - "src": "0:3110:13" + "src": "0:3128:19" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", "exportedSymbols": { "StateChannelModule": [ - 2234 + 2436 ] }, - "id": 2235, + "id": 2437, "nodeType": "SourceUnit", "nodes": [ { - "id": 2037, + "id": 2236, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:13" + "src": "0:23:19" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 2038, + "id": 2237, "nodeType": "ImportDirective", - "scope": 2235, - "sourceUnit": 622, - "src": "24:23:13", + "scope": 2437, + "sourceUnit": 751, + "src": "24:23:19", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 2039, + "id": 2238, "nodeType": "ImportDirective", - "scope": 2235, - "sourceUnit": 1344, - "src": "48:29:13", + "scope": 2437, + "sourceUnit": 1473, + "src": "48:29:19", "symbolAliases": [], "unitAlias": "" }, @@ -2919,46 +2971,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2040, + "id": 2239, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "300:6:13", + "referencedDeclaration": 750, + "src": "300:6:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, - "id": 2041, + "id": 2240, "nodeType": "InheritanceSpecifier", - "src": "300:6:13" + "src": "300:6:19" } ], "contractDependencies": [ - 580, - 621, - 1359 + 652, + 750, + 1619 ], "contractKind": "contract", "documentation": "@title Gnosis Safe State Module - A module that allows interaction with statechannels.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 2234, + "id": 2436, "linearizedBaseContracts": [ - 2234, - 621, - 580, - 1359 + 2436, + 750, + 652, + 1619 ], "name": "StateChannelModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2044, + "id": 2243, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2234, - "src": "314:52:13", + "scope": 2436, + "src": "314:52:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2966,10 +3018,10 @@ "typeString": "string" }, "typeName": { - "id": 2042, + "id": 2241, "name": "string", "nodeType": "ElementaryTypeName", - "src": "314:6:13", + "src": "314:6:19", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2978,14 +3030,14 @@ "value": { "argumentTypes": null, "hexValue": "5374617465204368616e6e656c204d6f64756c65", - "id": 2043, + "id": 2242, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "344:22:13", + "src": "344:22:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e66fa361bdba11103aaf2321b03707a79b393abf1f410f3f609398777fd3a713", @@ -2997,11 +3049,11 @@ }, { "constant": true, - "id": 2047, + "id": 2246, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2234, - "src": "372:40:13", + "scope": 2436, + "src": "372:40:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3009,10 +3061,10 @@ "typeString": "string" }, "typeName": { - "id": 2045, + "id": 2244, "name": "string", "nodeType": "ElementaryTypeName", - "src": "372:6:13", + "src": "372:6:19", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3021,14 +3073,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 2046, + "id": 2245, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "405:7:13", + "src": "405:7:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -3040,11 +3092,11 @@ }, { "constant": false, - "id": 2051, + "id": 2250, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 2234, - "src": "510:43:13", + "scope": 2436, + "src": "510:43:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3052,28 +3104,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 2050, + "id": 2249, "keyType": { - "id": 2048, + "id": 2247, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "519:7:13", + "src": "519:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "510:25:13", + "src": "510:25:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 2049, + "id": 2248, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "530:4:13", + "src": "530:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3085,9 +3137,9 @@ }, { "body": { - "id": 2057, + "id": 2256, "nodeType": "Block", - "src": "637:29:13", + "src": "637:29:19", "statements": [ { "expression": { @@ -3095,18 +3147,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2054, + "id": 2253, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "647:10:13", + "referencedDeclaration": 749, + "src": "647:10:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2055, + "id": 2254, "isConstant": false, "isLValue": false, "isPure": false, @@ -3114,20 +3166,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "647:12:13", + "src": "647:12:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2056, + "id": 2255, "nodeType": "ExpressionStatement", - "src": "647:12:13" + "src": "647:12:19" } ] }, "documentation": "@dev Setup function sets manager", - "id": 2058, + "id": 2257, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3135,42 +3187,42 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2052, + "id": 2251, "nodeType": "ParameterList", "parameters": [], - "src": "615:2:13" + "src": "615:2:19" }, "payable": false, "returnParameters": { - "id": 2053, + "id": 2252, "nodeType": "ParameterList", "parameters": [], - "src": "637:0:13" + "src": "637:0:19" }, - "scope": 2234, - "src": "601:65:13", + "scope": 2436, + "src": "601:65:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2120, + "id": 2319, "nodeType": "Block", - "src": "1502:365:13", + "src": "1502:365:19", "statements": [ { "assignments": [ - 2081 + 2280 ], "declarations": [ { "constant": false, - "id": 2081, + "id": 2280, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1512:23:13", + "scope": 2320, + "src": "1512:23:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3178,10 +3230,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2080, + "id": 2279, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1512:7:13", + "src": "1512:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3191,18 +3243,18 @@ "visibility": "internal" } ], - "id": 2089, + "id": 2288, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2083, + "id": 2282, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2060, - "src": "1557:2:13", + "referencedDeclaration": 2259, + "src": "1557:2:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3210,12 +3262,12 @@ }, { "argumentTypes": null, - "id": 2084, + "id": 2283, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2062, - "src": "1561:5:13", + "referencedDeclaration": 2261, + "src": "1561:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3223,12 +3275,12 @@ }, { "argumentTypes": null, - "id": 2085, + "id": 2284, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2064, - "src": "1568:4:13", + "referencedDeclaration": 2263, + "src": "1568:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3236,25 +3288,25 @@ }, { "argumentTypes": null, - "id": 2086, + "id": 2285, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, - "src": "1574:9:13", + "referencedDeclaration": 2265, + "src": "1574:9:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 2087, + "id": 2286, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2068, - "src": "1585:5:13", + "referencedDeclaration": 2267, + "src": "1585:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3276,7 +3328,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -3284,18 +3336,18 @@ "typeString": "uint256" } ], - "id": 2082, + "id": 2281, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2233, - "src": "1538:18:13", + "referencedDeclaration": 2435, + "src": "1538:18:19", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$_t_uint256_$returns$_t_bytes32_$", + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$_t_uint256_$returns$_t_bytes32_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation,uint256) view returns (bytes32)" } }, - "id": 2088, + "id": 2287, "isConstant": false, "isLValue": false, "isPure": false, @@ -3303,14 +3355,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1538:53:13", + "src": "1538:53:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "1512:79:13" + "src": "1512:79:19" }, { "expression": { @@ -3318,7 +3370,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2094, + "id": 2293, "isConstant": false, "isLValue": false, "isPure": false, @@ -3326,31 +3378,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1609:28:13", + "src": "1609:28:19", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2091, + "id": 2290, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2051, - "src": "1610:10:13", + "referencedDeclaration": 2250, + "src": "1610:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2093, + "id": 2292, "indexExpression": { "argumentTypes": null, - "id": 2092, + "id": 2291, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2081, - "src": "1621:15:13", + "referencedDeclaration": 2280, + "src": "1621:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3361,7 +3413,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1610:27:13", + "src": "1610:27:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3380,21 +3432,21 @@ "typeString": "bool" } ], - "id": 2090, + "id": 2289, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1601:7:13", + "referencedDeclaration": 2601, + "src": "1601:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2095, + "id": 2294, "isConstant": false, "isLValue": false, "isPure": false, @@ -3402,15 +3454,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1601:37:13", + "src": "1601:37:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2096, + "id": 2295, "nodeType": "ExpressionStatement", - "src": "1601:37:13" + "src": "1601:37:19" }, { "expression": { @@ -3418,12 +3470,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2098, + "id": 2297, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2081, - "src": "1658:15:13", + "referencedDeclaration": 2280, + "src": "1658:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3431,12 +3483,12 @@ }, { "argumentTypes": null, - "id": 2099, + "id": 2298, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2071, - "src": "1675:1:13", + "referencedDeclaration": 2270, + "src": "1675:1:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" @@ -3444,12 +3496,12 @@ }, { "argumentTypes": null, - "id": 2100, + "id": 2299, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2074, - "src": "1678:1:13", + "referencedDeclaration": 2273, + "src": "1678:1:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -3457,12 +3509,12 @@ }, { "argumentTypes": null, - "id": 2101, + "id": 2300, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2077, - "src": "1681:1:13", + "referencedDeclaration": 2276, + "src": "1681:1:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" @@ -3488,18 +3540,18 @@ "typeString": "bytes32[] memory" } ], - "id": 2097, + "id": 2296, "name": "checkHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2202, - "src": "1648:9:13", + "referencedDeclaration": 2401, + "src": "1648:9:19", "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" } }, - "id": 2102, + "id": 2301, "isConstant": false, "isLValue": false, "isPure": false, @@ -3507,20 +3559,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1648:35:13", + "src": "1648:35:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2103, + "id": 2302, "nodeType": "ExpressionStatement", - "src": "1648:35:13" + "src": "1648:35:19" }, { "expression": { "argumentTypes": null, - "id": 2108, + "id": 2307, "isConstant": false, "isLValue": false, "isPure": false, @@ -3529,26 +3581,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2104, + "id": 2303, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2051, - "src": "1746:10:13", + "referencedDeclaration": 2250, + "src": "1746:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2106, + "id": 2305, "indexExpression": { "argumentTypes": null, - "id": 2105, + "id": 2304, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2081, - "src": "1757:15:13", + "referencedDeclaration": 2280, + "src": "1757:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3559,7 +3611,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1746:27:13", + "src": "1746:27:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3570,14 +3622,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2107, + "id": 2306, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1776:4:13", + "src": "1776:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3585,15 +3637,15 @@ }, "value": "true" }, - "src": "1746:34:13", + "src": "1746:34:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2109, + "id": 2308, "nodeType": "ExpressionStatement", - "src": "1746:34:13" + "src": "1746:34:19" }, { "expression": { @@ -3604,12 +3656,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2113, + "id": 2312, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2060, - "src": "1832:2:13", + "referencedDeclaration": 2259, + "src": "1832:2:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3617,12 +3669,12 @@ }, { "argumentTypes": null, - "id": 2114, + "id": 2313, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2062, - "src": "1836:5:13", + "referencedDeclaration": 2261, + "src": "1836:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3630,12 +3682,12 @@ }, { "argumentTypes": null, - "id": 2115, + "id": 2314, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2064, - "src": "1843:4:13", + "referencedDeclaration": 2263, + "src": "1843:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3643,14 +3695,14 @@ }, { "argumentTypes": null, - "id": 2116, + "id": 2315, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2066, - "src": "1849:9:13", + "referencedDeclaration": 2265, + "src": "1849:9:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } } @@ -3670,38 +3722,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2111, + "id": 2310, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "1798:7:13", + "referencedDeclaration": 717, + "src": "1798:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } }, - "id": 2112, + "id": 2311, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 798, - "src": "1798:33:13", + "referencedDeclaration": 927, + "src": "1798:33:19", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2117, + "id": 2316, "isConstant": false, "isLValue": false, "isPure": false, @@ -3709,7 +3761,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1798:61:13", + "src": "1798:61:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3723,21 +3775,21 @@ "typeString": "bool" } ], - "id": 2110, + "id": 2309, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1790:7:13", + "referencedDeclaration": 2601, + "src": "1790:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2118, + "id": 2317, "isConstant": false, "isLValue": false, "isPure": false, @@ -3745,20 +3797,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1790:70:13", + "src": "1790:70:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2119, + "id": 2318, "nodeType": "ExpressionStatement", - "src": "1790:70:13" + "src": "1790:70:19" } ] }, "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 nonce Nonce used for this Safe transaction.\n @param v Array of signature V values sorted by owner addresses.\n @param r Array of signature R values sorted by owner addresses.\n @param s Array of signature S values sorted by owner addresses.", - "id": 2121, + "id": 2320, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3766,16 +3818,16 @@ "name": "execTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 2078, + "id": 2277, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2060, + "id": 2259, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1299:10:13", + "scope": 2320, + "src": "1299:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3783,10 +3835,10 @@ "typeString": "address" }, "typeName": { - "id": 2059, + "id": 2258, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1299:7:13", + "src": "1299:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3797,11 +3849,11 @@ }, { "constant": false, - "id": 2062, + "id": 2261, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1320:13:13", + "scope": 2320, + "src": "1320:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3809,10 +3861,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2061, + "id": 2260, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1320:7:13", + "src": "1320:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3823,11 +3875,11 @@ }, { "constant": false, - "id": 2064, + "id": 2263, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1344:10:13", + "scope": 2320, + "src": "1344:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3835,10 +3887,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2063, + "id": 2262, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1344:5:13", + "src": "1344:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3849,26 +3901,26 @@ }, { "constant": false, - "id": 2066, + "id": 2265, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1365:24:13", + "scope": 2320, + "src": "1365:24:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 2065, + "id": 2264, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "1365:14:13", + "referencedDeclaration": 29, + "src": "1365:14:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -3877,11 +3929,11 @@ }, { "constant": false, - "id": 2068, + "id": 2267, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1400:13:13", + "scope": 2320, + "src": "1400:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3889,10 +3941,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2067, + "id": 2266, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1400:7:13", + "src": "1400:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3903,11 +3955,11 @@ }, { "constant": false, - "id": 2071, + "id": 2270, "name": "v", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1423:9:13", + "scope": 2320, + "src": "1423:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3916,19 +3968,19 @@ }, "typeName": { "baseType": { - "id": 2069, + "id": 2268, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1423:5:13", + "src": "1423:5:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 2070, + "id": 2269, "length": null, "nodeType": "ArrayTypeName", - "src": "1423:7:13", + "src": "1423:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[]" @@ -3939,11 +3991,11 @@ }, { "constant": false, - "id": 2074, + "id": 2273, "name": "r", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1443:11:13", + "scope": 2320, + "src": "1443:11:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3952,19 +4004,19 @@ }, "typeName": { "baseType": { - "id": 2072, + "id": 2271, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1443:7:13", + "src": "1443:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2073, + "id": 2272, "length": null, "nodeType": "ArrayTypeName", - "src": "1443:9:13", + "src": "1443:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -3975,11 +4027,11 @@ }, { "constant": false, - "id": 2077, + "id": 2276, "name": "s", "nodeType": "VariableDeclaration", - "scope": 2121, - "src": "1465:11:13", + "scope": 2320, + "src": "1465:11:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3988,19 +4040,19 @@ }, "typeName": { "baseType": { - "id": 2075, + "id": 2274, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1465:7:13", + "src": "1465:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2076, + "id": 2275, "length": null, "nodeType": "ArrayTypeName", - "src": "1465:9:13", + "src": "1465:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -4010,39 +4062,39 @@ "visibility": "internal" } ], - "src": "1289:193:13" + "src": "1289:193:19" }, "payable": false, "returnParameters": { - "id": 2079, + "id": 2278, "nodeType": "ParameterList", "parameters": [], - "src": "1502:0:13" + "src": "1502:0:19" }, - "scope": 2234, - "src": "1265:602:13", + "scope": 2436, + "src": "1265:602:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2201, + "id": 2400, "nodeType": "Block", - "src": "1988:530:13", + "src": "1988:530:19", "statements": [ { "assignments": [ - 2136 + 2335 ], "declarations": [ { "constant": false, - "id": 2136, + "id": 2335, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 2202, - "src": "2050:17:13", + "scope": 2401, + "src": "2050:17:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4050,10 +4102,10 @@ "typeString": "address" }, "typeName": { - "id": 2135, + "id": 2334, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2050:7:13", + "src": "2050:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4063,21 +4115,21 @@ "visibility": "internal" } ], - "id": 2140, + "id": 2339, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 2138, + "id": 2337, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2078:1:13", + "src": "2078:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4093,20 +4145,20 @@ "typeString": "int_const 0" } ], - "id": 2137, + "id": 2336, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2070:7:13", + "src": "2070:7:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2139, + "id": 2338, "isConstant": false, "isLValue": false, "isPure": true, @@ -4114,25 +4166,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2070:10:13", + "src": "2070:10:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "2050:30:13" + "src": "2050:30:19" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 2142, + "id": 2341, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 2202, - "src": "2090:20:13", + "scope": 2401, + "src": "2090:20:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4140,10 +4192,10 @@ "typeString": "address" }, "typeName": { - "id": 2141, + "id": 2340, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2090:7:13", + "src": "2090:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4153,21 +4205,21 @@ "visibility": "internal" } ], - "id": 2143, + "id": 2342, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "2090:20:13" + "src": "2090:20:19" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 2145, + "id": 2344, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2202, - "src": "2120:9:13", + "scope": 2401, + "src": "2120:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4175,10 +4227,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2144, + "id": 2343, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2120:7:13", + "src": "2120:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4188,23 +4240,23 @@ "visibility": "internal" } ], - "id": 2146, + "id": 2345, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "2120:9:13" + "src": "2120:9:19" }, { "assignments": [ - 2148 + 2347 ], "declarations": [ { "constant": false, - "id": 2148, + "id": 2347, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 2202, - "src": "2139:15:13", + "scope": 2401, + "src": "2139:15:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4212,10 +4264,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2147, + "id": 2346, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2139:5:13", + "src": "2139:5:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4225,7 +4277,7 @@ "visibility": "internal" } ], - "id": 2154, + "id": 2353, "initialValue": { "argumentTypes": null, "arguments": [], @@ -4236,14 +4288,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2150, + "id": 2349, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "2170:7:13", + "referencedDeclaration": 717, + "src": "2170:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } } @@ -4251,22 +4303,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } ], - "id": 2149, + "id": 2348, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2157:12:13", + "referencedDeclaration": 1472, + "src": "2157:12:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1343_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1472_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2151, + "id": 2350, "isConstant": false, "isLValue": false, "isPure": false, @@ -4274,27 +4326,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2157:21:13", + "src": "2157:21:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1343", + "typeIdentifier": "t_contract$_OwnerManager_$1472", "typeString": "contract OwnerManager" } }, - "id": 2152, + "id": 2351, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getThreshold", "nodeType": "MemberAccess", - "referencedDeclaration": 1279, - "src": "2157:34:13", + "referencedDeclaration": 1408, + "src": "2157:34:19", "typeDescriptions": { "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", "typeString": "function () view external returns (uint8)" } }, - "id": 2153, + "id": 2352, "isConstant": false, "isLValue": false, "isPure": false, @@ -4302,37 +4354,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2157:36:13", + "src": "2157:36:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "2139:54:13" + "src": "2139:54:19" }, { "body": { - "id": 2199, + "id": 2398, "nodeType": "Block", - "src": "2277:235:13", + "src": "2277:235:19", "statements": [ { "expression": { "argumentTypes": null, - "id": 2178, + "id": 2377, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2165, + "id": 2364, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2291:12:13", + "referencedDeclaration": 2341, + "src": "2291:12:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4345,12 +4397,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2167, + "id": 2366, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2123, - "src": "2316:15:13", + "referencedDeclaration": 2322, + "src": "2316:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4360,26 +4412,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2168, + "id": 2367, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2126, - "src": "2333:1:13", + "referencedDeclaration": 2325, + "src": "2333:1:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_memory_ptr", "typeString": "uint8[] memory" } }, - "id": 2170, + "id": 2369, "indexExpression": { "argumentTypes": null, - "id": 2169, + "id": 2368, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "2335:1:13", + "referencedDeclaration": 2344, + "src": "2335:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4390,7 +4442,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2333:4:13", + "src": "2333:4:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -4400,26 +4452,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2171, + "id": 2370, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "2339:1:13", + "referencedDeclaration": 2328, + "src": "2339:1:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 2173, + "id": 2372, "indexExpression": { "argumentTypes": null, - "id": 2172, + "id": 2371, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "2341:1:13", + "referencedDeclaration": 2344, + "src": "2341:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4430,7 +4482,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2339:4:13", + "src": "2339:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4440,26 +4492,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2174, + "id": 2373, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2132, - "src": "2345:1:13", + "referencedDeclaration": 2331, + "src": "2345:1:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 2176, + "id": 2375, "indexExpression": { "argumentTypes": null, - "id": 2175, + "id": 2374, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "2347:1:13", + "referencedDeclaration": 2344, + "src": "2347:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4470,7 +4522,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2345:4:13", + "src": "2345:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4496,18 +4548,18 @@ "typeString": "bytes32" } ], - "id": 2166, + "id": 2365, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2388, - "src": "2306:9:13", + "referencedDeclaration": 2590, + "src": "2306:9:19", "typeDescriptions": { "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" } }, - "id": 2177, + "id": 2376, "isConstant": false, "isLValue": false, "isPure": false, @@ -4515,21 +4567,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2306:44:13", + "src": "2306:44:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2291:59:13", + "src": "2291:59:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2179, + "id": 2378, "nodeType": "ExpressionStatement", - "src": "2291:59:13" + "src": "2291:59:19" }, { "expression": { @@ -4540,12 +4592,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2185, + "id": 2384, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2402:12:13", + "referencedDeclaration": 2341, + "src": "2402:12:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4564,14 +4616,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2182, + "id": 2381, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "2385:7:13", + "referencedDeclaration": 717, + "src": "2385:7:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } } @@ -4579,22 +4631,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } ], - "id": 2181, + "id": 2380, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2372:12:13", + "referencedDeclaration": 1472, + "src": "2372:12:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1343_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1472_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2183, + "id": 2382, "isConstant": false, "isLValue": false, "isPure": false, @@ -4602,27 +4654,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2372:21:13", + "src": "2372:21:19", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1343", + "typeIdentifier": "t_contract$_OwnerManager_$1472", "typeString": "contract OwnerManager" } }, - "id": 2184, + "id": 2383, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1293, - "src": "2372:29:13", + "referencedDeclaration": 1422, + "src": "2372:29:19", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 2186, + "id": 2385, "isConstant": false, "isLValue": false, "isPure": false, @@ -4630,7 +4682,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2372:43:13", + "src": "2372:43:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4644,21 +4696,21 @@ "typeString": "bool" } ], - "id": 2180, + "id": 2379, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2364:7:13", + "referencedDeclaration": 2601, + "src": "2364:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2187, + "id": 2386, "isConstant": false, "isLValue": false, "isPure": false, @@ -4666,15 +4718,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2364:52:13", + "src": "2364:52:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2188, + "id": 2387, "nodeType": "ExpressionStatement", - "src": "2364:52:13" + "src": "2364:52:19" }, { "expression": { @@ -4686,19 +4738,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2192, + "id": 2391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2190, + "id": 2389, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2438:12:13", + "referencedDeclaration": 2341, + "src": "2438:12:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4708,18 +4760,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 2191, + "id": 2390, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2136, - "src": "2453:9:13", + "referencedDeclaration": 2335, + "src": "2453:9:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2438:24:13", + "src": "2438:24:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4733,21 +4785,21 @@ "typeString": "bool" } ], - "id": 2189, + "id": 2388, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2430:7:13", + "referencedDeclaration": 2601, + "src": "2430:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2193, + "id": 2392, "isConstant": false, "isLValue": false, "isPure": false, @@ -4755,32 +4807,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2430:33:13", + "src": "2430:33:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2194, + "id": 2393, "nodeType": "ExpressionStatement", - "src": "2430:33:13" + "src": "2430:33:19" }, { "expression": { "argumentTypes": null, - "id": 2197, + "id": 2396, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2195, + "id": 2394, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2136, - "src": "2477:9:13", + "referencedDeclaration": 2335, + "src": "2477:9:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4790,26 +4842,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2196, + "id": 2395, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2142, - "src": "2489:12:13", + "referencedDeclaration": 2341, + "src": "2489:12:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2477:24:13", + "src": "2477:24:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2198, + "id": 2397, "nodeType": "ExpressionStatement", - "src": "2477:24:13" + "src": "2477:24:19" } ] }, @@ -4819,19 +4871,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2161, + "id": 2360, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2159, + "id": 2358, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "2257:1:13", + "referencedDeclaration": 2344, + "src": "2257:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4841,40 +4893,40 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 2160, + "id": 2359, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2148, - "src": "2261:9:13", + "referencedDeclaration": 2347, + "src": "2261:9:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "2257:13:13", + "src": "2257:13:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2200, + "id": 2399, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 2157, + "id": 2356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2155, + "id": 2354, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "2250:1:13", + "referencedDeclaration": 2344, + "src": "2250:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4885,14 +4937,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2156, + "id": 2355, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2254:1:13", + "src": "2254:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4900,20 +4952,20 @@ }, "value": "0" }, - "src": "2250:5:13", + "src": "2250:5:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2158, + "id": 2357, "nodeType": "ExpressionStatement", - "src": "2250:5:13" + "src": "2250:5:19" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2163, + "id": 2362, "isConstant": false, "isLValue": false, "isPure": false, @@ -4921,15 +4973,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2272:3:13", + "src": "2272:3:19", "subExpression": { "argumentTypes": null, - "id": 2162, + "id": 2361, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "2272:1:13", + "referencedDeclaration": 2344, + "src": "2272:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4940,17 +4992,17 @@ "typeString": "uint256" } }, - "id": 2164, + "id": 2363, "nodeType": "ExpressionStatement", - "src": "2272:3:13" + "src": "2272:3:19" }, "nodeType": "ForStatement", - "src": "2245:267:13" + "src": "2245:267:19" } ] }, "documentation": null, - "id": 2202, + "id": 2401, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4958,16 +5010,16 @@ "name": "checkHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2133, + "id": 2332, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2123, + "id": 2322, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 2202, - "src": "1892:23:13", + "scope": 2401, + "src": "1892:23:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4975,10 +5027,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2122, + "id": 2321, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1892:7:13", + "src": "1892:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4989,11 +5041,11 @@ }, { "constant": false, - "id": 2126, + "id": 2325, "name": "v", "nodeType": "VariableDeclaration", - "scope": 2202, - "src": "1917:9:13", + "scope": 2401, + "src": "1917:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5002,19 +5054,19 @@ }, "typeName": { "baseType": { - "id": 2124, + "id": 2323, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1917:5:13", + "src": "1917:5:19", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 2125, + "id": 2324, "length": null, "nodeType": "ArrayTypeName", - "src": "1917:7:13", + "src": "1917:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint8_$dyn_storage_ptr", "typeString": "uint8[]" @@ -5025,11 +5077,11 @@ }, { "constant": false, - "id": 2129, + "id": 2328, "name": "r", "nodeType": "VariableDeclaration", - "scope": 2202, - "src": "1928:11:13", + "scope": 2401, + "src": "1928:11:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5038,19 +5090,19 @@ }, "typeName": { "baseType": { - "id": 2127, + "id": 2326, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1928:7:13", + "src": "1928:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2128, + "id": 2327, "length": null, "nodeType": "ArrayTypeName", - "src": "1928:9:13", + "src": "1928:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -5061,11 +5113,11 @@ }, { "constant": false, - "id": 2132, + "id": 2331, "name": "s", "nodeType": "VariableDeclaration", - "scope": 2202, - "src": "1941:11:13", + "scope": 2401, + "src": "1941:11:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5074,19 +5126,19 @@ }, "typeName": { "baseType": { - "id": 2130, + "id": 2329, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1941:7:13", + "src": "1941:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2131, + "id": 2330, "length": null, "nodeType": "ArrayTypeName", - "src": "1941:9:13", + "src": "1941:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -5096,26 +5148,26 @@ "visibility": "internal" } ], - "src": "1891:62:13" + "src": "1891:62:19" }, "payable": false, "returnParameters": { - "id": 2134, + "id": 2333, "nodeType": "ParameterList", "parameters": [], - "src": "1988:0:13" + "src": "1988:0:19" }, - "scope": 2234, - "src": "1873:645:13", + "scope": 2436, + "src": "1873:645:19", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2232, + "id": 2434, "nodeType": "Block", - "src": "3012:95:13", + "src": "3012:113:19", "statements": [ { "expression": { @@ -5126,239 +5178,291 @@ "arguments": [ { "argumentTypes": null, - "hexValue": "30783139", - "id": 2219, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30783139", + "id": 2420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3061:4:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + }, + "value": "0x19" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_25_by_1", + "typeString": "int_const 25" + } + ], + "id": 2419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3056:4:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 2421, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "3044:4:13", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "3056:10:19", "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" + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" } - ], - "id": 2218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3039:4:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" }, - "typeName": "byte" - }, - "id": 2220, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3039:10:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "arguments": [ { "argumentTypes": null, - "hexValue": "30", - "id": 2222, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3073:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3068:4:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": "byte" + }, + "id": 2424, "isConstant": false, "isLValue": false, "isPure": true, - "kind": "number", + "kind": "typeConversion", "lValueRequested": false, - "nodeType": "Literal", - "src": "3056:1:13", - "subdenomination": null, + "names": [], + "nodeType": "FunctionCall", + "src": "3068:7:19", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + { + "argumentTypes": null, + "id": 2425, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2649, + "src": "3077:4:19", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StateChannelModule_$2436", + "typeString": "contract StateChannelModule" + } + }, + { + "argumentTypes": null, + "id": 2426, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2403, + "src": "3083:2:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2427, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2405, + "src": "3087:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2428, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2407, + "src": "3094:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 2429, + "name": "operation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2409, + "src": "3100:9:19", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + } + }, + { + "argumentTypes": null, + "id": 2430, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2411, + "src": "3111:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + { + "typeIdentifier": "t_contract$_StateChannelModule_$2436", + "typeString": "contract StateChannelModule" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_enum$_Operation_$29", + "typeString": "enum Enum.Operation" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 2221, + "expression": { + "argumentTypes": null, + "id": 2417, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2585, + "src": "3039:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2418, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3051:4:13", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3039:16:19", "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes1_$", - "typeString": "type(bytes1)" - }, - "typeName": "byte" + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } }, - "id": 2223, + "id": 2431, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "typeConversion", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3051:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - } - }, - { - "argumentTypes": null, - "id": 2224, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2435, - "src": "3060:4:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StateChannelModule_$2234", - "typeString": "contract StateChannelModule" - } - }, - { - "argumentTypes": null, - "id": 2225, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2204, - "src": "3066:2:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2226, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2206, - "src": "3070:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2227, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "3077:4:13", + "src": "3039:78:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } - }, - { - "argumentTypes": null, - "id": 2228, - "name": "operation", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2210, - "src": "3083:9:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - } - }, - { - "argumentTypes": null, - "id": 2229, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2212, - "src": "3094:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } } ], "expression": { "argumentTypes": [ - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_bytes1", - "typeString": "bytes1" - }, - { - "typeIdentifier": "t_contract$_StateChannelModule_$2234", - "typeString": "contract StateChannelModule" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_enum$_Operation_$5", - "typeString": "enum Enum.Operation" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" } ], - "id": 2217, + "id": 2416, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2390, - "src": "3029:9:13", + "referencedDeclaration": 2592, + "src": "3029:9:19", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 2230, + "id": 2432, "isConstant": false, "isLValue": false, "isPure": false, @@ -5366,21 +5470,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3029:71:13", + "src": "3029:89:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 2216, - "id": 2231, + "functionReturnParameters": 2415, + "id": 2433, "nodeType": "Return", - "src": "3022:78:13" + "src": "3022:96:19" } ] }, "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 nonce Transaction nonce.\n @return Transaction hash.", - "id": 2233, + "id": 2435, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5388,16 +5492,16 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2213, + "id": 2412, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2204, + "id": 2403, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2233, - "src": "2833:10:13", + "scope": 2435, + "src": "2833:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5405,10 +5509,10 @@ "typeString": "address" }, "typeName": { - "id": 2203, + "id": 2402, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2833:7:13", + "src": "2833:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5419,11 +5523,11 @@ }, { "constant": false, - "id": 2206, + "id": 2405, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2233, - "src": "2854:13:13", + "scope": 2435, + "src": "2854:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5431,10 +5535,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2205, + "id": 2404, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2854:7:13", + "src": "2854:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5445,11 +5549,11 @@ }, { "constant": false, - "id": 2208, + "id": 2407, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2233, - "src": "2878:10:13", + "scope": 2435, + "src": "2878:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5457,10 +5561,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2207, + "id": 2406, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2878:5:13", + "src": "2878:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5471,26 +5575,26 @@ }, { "constant": false, - "id": 2210, + "id": 2409, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 2233, - "src": "2899:24:13", + "scope": 2435, + "src": "2899:24:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 2209, + "id": 2408, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "2899:14:13", + "referencedDeclaration": 29, + "src": "2899:14:19", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -5499,11 +5603,11 @@ }, { "constant": false, - "id": 2212, + "id": 2411, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 2233, - "src": "2934:13:13", + "scope": 2435, + "src": "2934:13:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5511,10 +5615,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2211, + "id": 2410, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2934:7:13", + "src": "2934:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5524,20 +5628,20 @@ "visibility": "internal" } ], - "src": "2823:130:13" + "src": "2823:130:19" }, "payable": false, "returnParameters": { - "id": 2216, + "id": 2415, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2215, + "id": 2414, "name": "", "nodeType": "VariableDeclaration", - "scope": 2233, - "src": "2999:7:13", + "scope": 2435, + "src": "2999:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5545,10 +5649,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2214, + "id": 2413, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2999:7:13", + "src": "2999:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5558,51 +5662,45 @@ "visibility": "internal" } ], - "src": "2998:9:13" + "src": "2998:9:19" }, - "scope": 2234, - "src": "2796:311:13", + "scope": 2436, + "src": "2796:329:19", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 2235, - "src": "269:2840:13" + "scope": 2437, + "src": "269:2858:19" } ], - "src": "0:3110:13" + "src": "0:3128:19" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { "4": { "events": {}, "links": {}, - "address": "0xe8ebcab56a44488742278fe3e5ed241b6b786032", - "transactionHash": "0x8285395632164bd2429394e47473065a620bcea7c066595b3b4e2eb1c8457d17" - }, - "1526478212260": { - "events": {}, - "links": {}, - "address": "0xb9597dbd8ed0c4c481d1677b3200b8c4d342750c", - "transactionHash": "0x7f1b3b4ba4694670b29675af571cb4a96b1c2d78d09d210e27482419aa6fff79" - }, - "1526973574996": { - "events": {}, - "links": {}, - "address": "0x79933939f70a2707380e371524050ecf6477da74", - "transactionHash": "0x7f1b3b4ba4694670b29675af571cb4a96b1c2d78d09d210e27482419aa6fff79" + "address": "0x8790f40ca24d228e6b81870eea3a67f4dc607035", + "transactionHash": "0x6ddc49abc9c794831925c1069990a2074a9700e60084596eef8e43a16c226be2" }, "1527316019334": { "events": {}, "links": {}, - "address": "0x07ef92f7b5ff64dc4d0757790281c23d54871b9a", - "transactionHash": "0x7f1b3b4ba4694670b29675af571cb4a96b1c2d78d09d210e27482419aa6fff79" + "address": "0x529daa14f15a5933ca1eccb5ddc077bb4c5c3e1e", + "transactionHash": "0x22f672e547fdb05f8c0c62f8f442864b8f3b650302c22409a90cb7f64adb6fd6" + }, + "1527420696956": { + "events": {}, + "links": {}, + "address": "0xef54fbda842be606286a8cfa51632312bc605b7d", + "transactionHash": "0x7f30a995aef0c0cf18b0ec902dde55e53b6ffd35610b06b23136ca628e430373" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-26T06:28:28.355Z" + "updatedAt": "2018-05-27T11:31:46.242Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/WhitelistModule.json b/safe-contracts/build/contracts/WhitelistModule.json index 9efae338..dc006576 100644 --- a/safe-contracts/build/contracts/WhitelistModule.json +++ b/safe-contracts/build/contracts/WhitelistModule.json @@ -146,73 +146,73 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50610c78806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061073d565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b961075d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610783565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610848565b005b34801561028d57600080fd5b50610296610957565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610990565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a53565b005b3480156103c657600080fd5b506103cf610b89565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b8101908080519060200190929190505050151561054f57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156105a757600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561066157fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156106a1578082015181840152602081019050610686565b50505050905090810190601f1680156106ce5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050506040513d602081101561071a57600080fd5b8101908080519060200190929190505050151561073657600080fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107df57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561080557600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108a457600080fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156108fc57600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b60008061099b610bc2565b600091505b8251821015610a4e5782828151811015156109b757fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141515156109e957600080fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081806001019250506109a0565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610aaf57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ad557600080fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610b2e57600080fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610c0957600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a723058202f15d7927e2ed3723a36804ee24b65ed4b34edcd2b65d7a7a11d8729219f6a9e0029", - "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061073d565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b961075d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610783565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610848565b005b34801561028d57600080fd5b50610296610957565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610990565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a53565b005b3480156103c657600080fd5b506103cf610b89565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b8101908080519060200190929190505050151561054f57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156105a757600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561066157fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156106a1578082015181840152602081019050610686565b50505050905090810190601f1680156106ce5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050506040513d602081101561071a57600080fd5b8101908080519060200190929190505050151561073657600080fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107df57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561080557600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108a457600080fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156108fc57600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b60008061099b610bc2565b600091505b8251821015610a4e5782828151811015156109b757fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141515156109e957600080fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081806001019250506109a0565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610aaf57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ad557600080fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610b2e57600080fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610c0957600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a723058202f15d7927e2ed3723a36804ee24b65ed4b34edcd2b65d7a7a11d8729219f6a9e0029", - "sourceMap": "289:1968:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;289:1968:14;;;;;;;", - "deployedSourceMap": "289:1968:14:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1864:391;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1864:391:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;498:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;498:46:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:5;;;;;;;;;;;;;;;;;;;;;;;;;;;626:208:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:172:14;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1438:172:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;331:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;331:48:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;331:48:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;667:270;;8:9:-1;5:2;;;30:1;27;20:12;5:2;667:270:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1086:198;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1086:198:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;385:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;385:40:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;385:40:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1864:391;1963:4;2093:7;;;;;;;;;;;2080:29;;;2110:10;2080:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:41:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2080:41:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2080:41:14;;;;;;;;;;;;;;;;2072:50;;;;;;;;2140:13;:17;2154:2;2140:17;;;;;;;;;;;;;;;;;;;;;;;;;2132:26;;;;;;;;2176:7;;;;;;;;;;;:33;;;2210:2;2214:5;2221:4;2227:19;2176:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2176:71:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2176:71:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2176:71:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2176:71:14;;;;;;;;;;;;;;;;2168:80;;;;;;;;1864:391;;;;;:::o;498:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;262:28:5:-;;;;;;;;;;;;;:::o;626:208:4:-;359:7:5;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;791:1:4;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o;1438:172:14:-;359:7:5;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;1540:13:14;:22;1554:7;1540:22;;;;;;;;;;;;;;;;;;;;;;;;;1532:31;;;;;;;;1598:5;1573:13;:22;1587:7;1573:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1438:172;:::o;331:48::-;;;;;;;;;;;;;;;;;;;;:::o;667:270::-;758:9;813:15;731:12;:10;:12::i;:::-;770:1;758:13;;753:178;777:8;:15;773:1;:19;753:178;;;831:8;840:1;831:11;;;;;;;;;;;;;;;;;;813:29;;875:1;864:7;:12;;;;856:21;;;;;;;;916:4;891:13;:22;905:7;891:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;794:3;;;;;;;753:178;;;667:270;;;:::o;1086:198::-;359:7:5;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;1194:1:14;1183:7;:12;;;;1175:21;;;;;;;;1215:13;:22;1229:7;1215:22;;;;;;;;;;;;;;;;;;;;;;;;;1214:23;1206:32;;;;;;;;1273:4;1248:13;:22;1262:7;1248:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1086:198;:::o;385:40::-;;;;;;;;;;;;;;;;;;;;:::o;392:268:5:-;606:1;594:7;;;;;;;;;;;586:21;;;578:30;;;;;;;;642:10;618:7;;:35;;;;;;;;;;;;;;;;;;392:268::o", - "source": "pragma solidity 0.4.23;\nimport \"../Enum.sol\";\nimport \"../Module.sol\";\nimport \"../ModuleManager.sol\";\nimport \"../OwnerManager.sol\";\n\n\n/// @title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n/// @author Stefan George - \ncontract WhitelistModule is Module {\n\n string public constant NAME = \"Whitelist Module\";\n string public constant VERSION = \"0.0.1\";\n\n // isWhitelisted mapping maps destination address to boolean.\n mapping (address => bool) public isWhitelisted;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param accounts List of whitelisted accounts.\n function setup(address[] accounts)\n public\n {\n setManager();\n for (uint256 i = 0; i < accounts.length; i++) {\n address account = accounts[i];\n require(account != 0);\n isWhitelisted[account] = true;\n }\n }\n\n /// @dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n /// @param account Destination address.\n function addToWhitelist(address account)\n public\n authorized\n {\n require(account != 0);\n require(!isWhitelisted[account]);\n isWhitelisted[account] = true;\n }\n\n /// @dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n /// @param account Destination address.\n function removeFromWhitelist(address account)\n public\n authorized\n {\n require(isWhitelisted[account]);\n isWhitelisted[account] = false;\n }\n\n /// @dev Returns if Safe transaction is to a whitelisted destination.\n /// @param to Whitelisted destination address.\n /// @param value Not checked.\n /// @param data Not checked.\n /// @return Returns if transaction can be executed.\n function executeWhitelisted(address to, uint256 value, bytes data)\n public\n returns (bool)\n {\n // Only Safe owners are allowed to execute transactions to whitelisted accounts.\n require(OwnerManager(manager).isOwner(msg.sender));\n require(isWhitelisted[to]);\n require(manager.execTransactionFromModule(to, value, data, Enum.Operation.Call));\n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b50610c78806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061073d565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b961075d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610783565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610848565b005b34801561028d57600080fd5b50610296610957565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610990565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a53565b005b3480156103c657600080fd5b506103cf610b89565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b8101908080519060200190929190505050151561054f57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156105a757600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561066157fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156106a1578082015181840152602081019050610686565b50505050905090810190601f1680156106ce5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050506040513d602081101561071a57600080fd5b8101908080519060200190929190505050151561073657600080fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107df57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561080557600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108a457600080fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156108fc57600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b60008061099b610bc2565b600091505b8251821015610a4e5782828151811015156109b757fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141515156109e957600080fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081806001019250506109a0565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610aaf57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ad557600080fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610b2e57600080fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610c0957600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a72305820a2e4acc18c7392c4cdfa06bb162c1c255b8fd38cb3756ecc9215b556928a15c10029", + "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061073d565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b961075d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610783565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610848565b005b34801561028d57600080fd5b50610296610957565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610990565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a53565b005b3480156103c657600080fd5b506103cf610b89565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b8101908080519060200190929190505050151561054f57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156105a757600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561066157fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156106a1578082015181840152602081019050610686565b50505050905090810190601f1680156106ce5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050506040513d602081101561071a57600080fd5b8101908080519060200190929190505050151561073657600080fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107df57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561080557600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156108a457600080fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156108fc57600080fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b60008061099b610bc2565b600091505b8251821015610a4e5782828151811015156109b757fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141515156109e957600080fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555081806001019250506109a0565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610aaf57600080fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ad557600080fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610b2e57600080fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610c0957600080fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a72305820a2e4acc18c7392c4cdfa06bb162c1c255b8fd38cb3756ecc9215b556928a15c10029", + "sourceMap": "289:1968:20:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;289:1968:20;;;;;;;", + "deployedSourceMap": "289:1968:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1864:391;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1864:391:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;498:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;498:46:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;626:208:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:208:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1438:172:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1438:172:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;331:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;331:48:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;331:48:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;667:270;;8:9:-1;5:2;;;30:1;27;20:12;5:2;667:270:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1086:198;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1086:198:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;385:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;385:40:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;385:40:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1864:391;1963:4;2093:7;;;;;;;;;;;2080:29;;;2110:10;2080:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2080:41:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2080:41:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2080:41:20;;;;;;;;;;;;;;;;2072:50;;;;;;;;2140:13;:17;2154:2;2140:17;;;;;;;;;;;;;;;;;;;;;;;;;2132:26;;;;;;;;2176:7;;;;;;;;;;;:33;;;2210:2;2214:5;2221:4;2227:19;2176:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2176:71:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2176:71:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2176:71:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2176:71:20;;;;;;;;;;;;;;;;2168:80;;;;;;;;1864:391;;;;;:::o;498:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;262:28:7:-;;;;;;;;;;;;;:::o;626:208:5:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;791:1:5;776:11;:16;;;;768:25;;;;;;;;816:11;803:10;;:24;;;;;;;;;;;;;;;;;;626:208;:::o;1438:172:20:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;1540:13:20;:22;1554:7;1540:22;;;;;;;;;;;;;;;;;;;;;;;;;1532:31;;;;;;;;1598:5;1573:13;:22;1587:7;1573:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1438:172;:::o;331:48::-;;;;;;;;;;;;;;;;;;;;:::o;667:270::-;758:9;813:15;731:12;:10;:12::i;:::-;770:1;758:13;;753:178;777:8;:15;773:1;:19;753:178;;;831:8;840:1;831:11;;;;;;;;;;;;;;;;;;813:29;;875:1;864:7;:12;;;;856:21;;;;;;;;916:4;891:13;:22;905:7;891:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;794:3;;;;;;;753:178;;;667:270;;;:::o;1086:198::-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:39;;;;;;;;1194:1:20;1183:7;:12;;;;1175:21;;;;;;;;1215:13;:22;1229:7;1215:22;;;;;;;;;;;;;;;;;;;;;;;;;1214:23;1206:32;;;;;;;;1273:4;1248:13;:22;1262:7;1248:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1086:198;:::o;385:40::-;;;;;;;;;;;;;;;;;;;;:::o;392:268:7:-;606:1;594:7;;;;;;;;;;;586:21;;;578:30;;;;;;;;642:10;618:7;;:35;;;;;;;;;;;;;;;;;;392:268::o", + "source": "pragma solidity 0.4.24;\nimport \"../Enum.sol\";\nimport \"../Module.sol\";\nimport \"../ModuleManager.sol\";\nimport \"../OwnerManager.sol\";\n\n\n/// @title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n/// @author Stefan George - \ncontract WhitelistModule is Module {\n\n string public constant NAME = \"Whitelist Module\";\n string public constant VERSION = \"0.0.1\";\n\n // isWhitelisted mapping maps destination address to boolean.\n mapping (address => bool) public isWhitelisted;\n\n /// @dev Setup function sets initial storage of contract.\n /// @param accounts List of whitelisted accounts.\n function setup(address[] accounts)\n public\n {\n setManager();\n for (uint256 i = 0; i < accounts.length; i++) {\n address account = accounts[i];\n require(account != 0);\n isWhitelisted[account] = true;\n }\n }\n\n /// @dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n /// @param account Destination address.\n function addToWhitelist(address account)\n public\n authorized\n {\n require(account != 0);\n require(!isWhitelisted[account]);\n isWhitelisted[account] = true;\n }\n\n /// @dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n /// @param account Destination address.\n function removeFromWhitelist(address account)\n public\n authorized\n {\n require(isWhitelisted[account]);\n isWhitelisted[account] = false;\n }\n\n /// @dev Returns if Safe transaction is to a whitelisted destination.\n /// @param to Whitelisted destination address.\n /// @param value Not checked.\n /// @param data Not checked.\n /// @return Returns if transaction can be executed.\n function executeWhitelisted(address to, uint256 value, bytes data)\n public\n returns (bool)\n {\n // Only Safe owners are allowed to execute transactions to whitelisted accounts.\n require(OwnerManager(manager).isOwner(msg.sender));\n require(isWhitelisted[to]);\n require(manager.execTransactionFromModule(to, value, data, Enum.Operation.Call));\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", "exportedSymbols": { "WhitelistModule": [ - 2381 + 2583 ] }, - "id": 2382, + "id": 2584, "nodeType": "SourceUnit", "nodes": [ { - "id": 2236, + "id": 2438, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:14" + "src": "0:23:20" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 2237, + "id": 2439, "nodeType": "ImportDirective", - "scope": 2382, - "sourceUnit": 7, - "src": "24:21:14", + "scope": 2584, + "sourceUnit": 31, + "src": "24:21:20", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 2238, + "id": 2440, "nodeType": "ImportDirective", - "scope": 2382, - "sourceUnit": 622, - "src": "46:23:14", + "scope": 2584, + "sourceUnit": 751, + "src": "46:23:20", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 2239, + "id": 2441, "nodeType": "ImportDirective", - "scope": 2382, - "sourceUnit": 972, - "src": "70:30:14", + "scope": 2584, + "sourceUnit": 1101, + "src": "70:30:20", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 2240, + "id": 2442, "nodeType": "ImportDirective", - "scope": 2382, - "sourceUnit": 1344, - "src": "101:29:14", + "scope": 2584, + "sourceUnit": 1473, + "src": "101:29:20", "symbolAliases": [], "unitAlias": "" }, @@ -222,46 +222,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2241, + "id": 2443, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "317:6:14", + "referencedDeclaration": 750, + "src": "317:6:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, - "id": 2242, + "id": 2444, "nodeType": "InheritanceSpecifier", - "src": "317:6:14" + "src": "317:6:20" } ], "contractDependencies": [ - 580, - 621, - 1359 + 652, + 750, + 1619 ], "contractKind": "contract", "documentation": "@title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n @author Stefan George - ", "fullyImplemented": true, - "id": 2381, + "id": 2583, "linearizedBaseContracts": [ - 2381, - 621, - 580, - 1359 + 2583, + 750, + 652, + 1619 ], "name": "WhitelistModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2245, + "id": 2447, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2381, - "src": "331:48:14", + "scope": 2583, + "src": "331:48:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -269,10 +269,10 @@ "typeString": "string" }, "typeName": { - "id": 2243, + "id": 2445, "name": "string", "nodeType": "ElementaryTypeName", - "src": "331:6:14", + "src": "331:6:20", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -281,14 +281,14 @@ "value": { "argumentTypes": null, "hexValue": "57686974656c697374204d6f64756c65", - "id": 2244, + "id": 2446, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "361:18:14", + "src": "361:18:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_84d69d03a7c747e8eefe7cc2b9e87b566cfc57cc90e4ed88f03f9c9780b7d4e6", @@ -300,11 +300,11 @@ }, { "constant": true, - "id": 2248, + "id": 2450, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2381, - "src": "385:40:14", + "scope": 2583, + "src": "385:40:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -312,10 +312,10 @@ "typeString": "string" }, "typeName": { - "id": 2246, + "id": 2448, "name": "string", "nodeType": "ElementaryTypeName", - "src": "385:6:14", + "src": "385:6:20", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -324,14 +324,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 2247, + "id": 2449, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "418:7:14", + "src": "418:7:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -343,11 +343,11 @@ }, { "constant": false, - "id": 2252, + "id": 2454, "name": "isWhitelisted", "nodeType": "VariableDeclaration", - "scope": 2381, - "src": "498:46:14", + "scope": 2583, + "src": "498:46:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -355,28 +355,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 2251, + "id": 2453, "keyType": { - "id": 2249, + "id": 2451, "name": "address", "nodeType": "ElementaryTypeName", - "src": "507:7:14", + "src": "507:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "498:25:14", + "src": "498:25:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2250, + "id": 2452, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "518:4:14", + "src": "518:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -388,9 +388,9 @@ }, { "body": { - "id": 2292, + "id": 2494, "nodeType": "Block", - "src": "721:216:14", + "src": "721:216:20", "statements": [ { "expression": { @@ -398,18 +398,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2258, + "id": 2460, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "731:10:14", + "referencedDeclaration": 749, + "src": "731:10:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2259, + "id": 2461, "isConstant": false, "isLValue": false, "isPure": false, @@ -417,34 +417,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "731:12:14", + "src": "731:12:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2260, + "id": 2462, "nodeType": "ExpressionStatement", - "src": "731:12:14" + "src": "731:12:20" }, { "body": { - "id": 2290, + "id": 2492, "nodeType": "Block", - "src": "799:132:14", + "src": "799:132:20", "statements": [ { "assignments": [ - 2273 + 2475 ], "declarations": [ { "constant": false, - "id": 2273, + "id": 2475, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2293, - "src": "813:15:14", + "scope": 2495, + "src": "813:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -452,10 +452,10 @@ "typeString": "address" }, "typeName": { - "id": 2272, + "id": 2474, "name": "address", "nodeType": "ElementaryTypeName", - "src": "813:7:14", + "src": "813:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -465,31 +465,31 @@ "visibility": "internal" } ], - "id": 2277, + "id": 2479, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2274, + "id": 2476, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2255, - "src": "831:8:14", + "referencedDeclaration": 2457, + "src": "831:8:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2276, + "id": 2478, "indexExpression": { "argumentTypes": null, - "id": 2275, + "id": 2477, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2262, - "src": "840:1:14", + "referencedDeclaration": 2464, + "src": "840:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -500,14 +500,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "831:11:14", + "src": "831:11:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "813:29:14" + "src": "813:29:20" }, { "expression": { @@ -519,19 +519,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2281, + "id": 2483, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2279, + "id": 2481, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2273, - "src": "864:7:14", + "referencedDeclaration": 2475, + "src": "864:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -542,14 +542,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2280, + "id": 2482, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "875:1:14", + "src": "875:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -557,7 +557,7 @@ }, "value": "0" }, - "src": "864:12:14", + "src": "864:12:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -571,21 +571,21 @@ "typeString": "bool" } ], - "id": 2278, + "id": 2480, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "856:7:14", + "referencedDeclaration": 2601, + "src": "856:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2282, + "id": 2484, "isConstant": false, "isLValue": false, "isPure": false, @@ -593,20 +593,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "856:21:14", + "src": "856:21:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2283, + "id": 2485, "nodeType": "ExpressionStatement", - "src": "856:21:14" + "src": "856:21:20" }, { "expression": { "argumentTypes": null, - "id": 2288, + "id": 2490, "isConstant": false, "isLValue": false, "isPure": false, @@ -615,26 +615,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2284, + "id": 2486, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2252, - "src": "891:13:14", + "referencedDeclaration": 2454, + "src": "891:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2286, + "id": 2488, "indexExpression": { "argumentTypes": null, - "id": 2285, + "id": 2487, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2273, - "src": "905:7:14", + "referencedDeclaration": 2475, + "src": "905:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -645,7 +645,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "891:22:14", + "src": "891:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -656,14 +656,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2287, + "id": 2489, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "916:4:14", + "src": "916:4:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -671,15 +671,15 @@ }, "value": "true" }, - "src": "891:29:14", + "src": "891:29:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2289, + "id": 2491, "nodeType": "ExpressionStatement", - "src": "891:29:14" + "src": "891:29:20" } ] }, @@ -689,19 +689,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2268, + "id": 2470, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2265, + "id": 2467, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2262, - "src": "773:1:14", + "referencedDeclaration": 2464, + "src": "773:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -713,18 +713,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2266, + "id": 2468, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2255, - "src": "777:8:14", + "referencedDeclaration": 2457, + "src": "777:8:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2267, + "id": 2469, "isConstant": false, "isLValue": false, "isPure": false, @@ -732,31 +732,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "777:15:14", + "src": "777:15:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "773:19:14", + "src": "773:19:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2291, + "id": 2493, "initializationExpression": { "assignments": [ - 2262 + 2464 ], "declarations": [ { "constant": false, - "id": 2262, + "id": 2464, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2293, - "src": "758:9:14", + "scope": 2495, + "src": "758:9:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -764,10 +764,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2261, + "id": 2463, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "758:7:14", + "src": "758:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -777,18 +777,18 @@ "visibility": "internal" } ], - "id": 2264, + "id": 2466, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2263, + "id": 2465, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "770:1:14", + "src": "770:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -797,12 +797,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "758:13:14" + "src": "758:13:20" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2270, + "id": 2472, "isConstant": false, "isLValue": false, "isPure": false, @@ -810,15 +810,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "794:3:14", + "src": "794:3:20", "subExpression": { "argumentTypes": null, - "id": 2269, + "id": 2471, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2262, - "src": "794:1:14", + "referencedDeclaration": 2464, + "src": "794:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -829,17 +829,17 @@ "typeString": "uint256" } }, - "id": 2271, + "id": 2473, "nodeType": "ExpressionStatement", - "src": "794:3:14" + "src": "794:3:20" }, "nodeType": "ForStatement", - "src": "753:178:14" + "src": "753:178:20" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param accounts List of whitelisted accounts.", - "id": 2293, + "id": 2495, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -847,16 +847,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2256, + "id": 2458, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2255, + "id": 2457, "name": "accounts", "nodeType": "VariableDeclaration", - "scope": 2293, - "src": "682:18:14", + "scope": 2495, + "src": "682:18:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -865,19 +865,19 @@ }, "typeName": { "baseType": { - "id": 2253, + "id": 2455, "name": "address", "nodeType": "ElementaryTypeName", - "src": "682:7:14", + "src": "682:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2254, + "id": 2456, "length": null, "nodeType": "ArrayTypeName", - "src": "682:9:14", + "src": "682:9:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -887,26 +887,26 @@ "visibility": "internal" } ], - "src": "681:20:14" + "src": "681:20:20" }, "payable": false, "returnParameters": { - "id": 2257, + "id": 2459, "nodeType": "ParameterList", "parameters": [], - "src": "721:0:14" + "src": "721:0:20" }, - "scope": 2381, - "src": "667:270:14", + "scope": 2583, + "src": "667:270:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2319, + "id": 2521, "nodeType": "Block", - "src": "1165:119:14", + "src": "1165:119:20", "statements": [ { "expression": { @@ -918,19 +918,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2303, + "id": 2505, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2301, + "id": 2503, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2295, - "src": "1183:7:14", + "referencedDeclaration": 2497, + "src": "1183:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -941,14 +941,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2302, + "id": 2504, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1194:1:14", + "src": "1194:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -956,7 +956,7 @@ }, "value": "0" }, - "src": "1183:12:14", + "src": "1183:12:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -970,21 +970,21 @@ "typeString": "bool" } ], - "id": 2300, + "id": 2502, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1175:7:14", + "referencedDeclaration": 2601, + "src": "1175:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2304, + "id": 2506, "isConstant": false, "isLValue": false, "isPure": false, @@ -992,15 +992,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1175:21:14", + "src": "1175:21:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2305, + "id": 2507, "nodeType": "ExpressionStatement", - "src": "1175:21:14" + "src": "1175:21:20" }, { "expression": { @@ -1008,7 +1008,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2310, + "id": 2512, "isConstant": false, "isLValue": false, "isPure": false, @@ -1016,31 +1016,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1214:23:14", + "src": "1214:23:20", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2307, + "id": 2509, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2252, - "src": "1215:13:14", + "referencedDeclaration": 2454, + "src": "1215:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2309, + "id": 2511, "indexExpression": { "argumentTypes": null, - "id": 2308, + "id": 2510, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2295, - "src": "1229:7:14", + "referencedDeclaration": 2497, + "src": "1229:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1051,7 +1051,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1215:22:14", + "src": "1215:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1070,21 +1070,21 @@ "typeString": "bool" } ], - "id": 2306, + "id": 2508, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1206:7:14", + "referencedDeclaration": 2601, + "src": "1206:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2311, + "id": 2513, "isConstant": false, "isLValue": false, "isPure": false, @@ -1092,20 +1092,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1206:32:14", + "src": "1206:32:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2312, + "id": 2514, "nodeType": "ExpressionStatement", - "src": "1206:32:14" + "src": "1206:32:20" }, { "expression": { "argumentTypes": null, - "id": 2317, + "id": 2519, "isConstant": false, "isLValue": false, "isPure": false, @@ -1114,26 +1114,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2313, + "id": 2515, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2252, - "src": "1248:13:14", + "referencedDeclaration": 2454, + "src": "1248:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2315, + "id": 2517, "indexExpression": { "argumentTypes": null, - "id": 2314, + "id": 2516, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2295, - "src": "1262:7:14", + "referencedDeclaration": 2497, + "src": "1262:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1144,7 +1144,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1248:22:14", + "src": "1248:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1155,14 +1155,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2316, + "id": 2518, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1273:4:14", + "src": "1273:4:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1170,57 +1170,57 @@ }, "value": "true" }, - "src": "1248:29:14", + "src": "1248:29:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2318, + "id": 2520, "nodeType": "ExpressionStatement", - "src": "1248:29:14" + "src": "1248:29:20" } ] }, "documentation": "@dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 2320, + "id": 2522, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2298, + "id": 2500, "modifierName": { "argumentTypes": null, - "id": 2297, + "id": 2499, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "1150:10:14", + "referencedDeclaration": 730, + "src": "1150:10:20", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1150:10:14" + "src": "1150:10:20" } ], "name": "addToWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 2296, + "id": 2498, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2295, + "id": 2497, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2320, - "src": "1110:15:14", + "scope": 2522, + "src": "1110:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1228,10 +1228,10 @@ "typeString": "address" }, "typeName": { - "id": 2294, + "id": 2496, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1110:7:14", + "src": "1110:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1241,26 +1241,26 @@ "visibility": "internal" } ], - "src": "1109:17:14" + "src": "1109:17:20" }, "payable": false, "returnParameters": { - "id": 2299, + "id": 2501, "nodeType": "ParameterList", "parameters": [], - "src": "1165:0:14" + "src": "1165:0:20" }, - "scope": 2381, - "src": "1086:198:14", + "scope": 2583, + "src": "1086:198:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2339, + "id": 2541, "nodeType": "Block", - "src": "1522:88:14", + "src": "1522:88:20", "statements": [ { "expression": { @@ -1270,26 +1270,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2328, + "id": 2530, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2252, - "src": "1540:13:14", + "referencedDeclaration": 2454, + "src": "1540:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2330, + "id": 2532, "indexExpression": { "argumentTypes": null, - "id": 2329, + "id": 2531, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2322, - "src": "1554:7:14", + "referencedDeclaration": 2524, + "src": "1554:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1300,7 +1300,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1540:22:14", + "src": "1540:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1314,21 +1314,21 @@ "typeString": "bool" } ], - "id": 2327, + "id": 2529, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1532:7:14", + "referencedDeclaration": 2601, + "src": "1532:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2331, + "id": 2533, "isConstant": false, "isLValue": false, "isPure": false, @@ -1336,20 +1336,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1532:31:14", + "src": "1532:31:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2332, + "id": 2534, "nodeType": "ExpressionStatement", - "src": "1532:31:14" + "src": "1532:31:20" }, { "expression": { "argumentTypes": null, - "id": 2337, + "id": 2539, "isConstant": false, "isLValue": false, "isPure": false, @@ -1358,26 +1358,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2333, + "id": 2535, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2252, - "src": "1573:13:14", + "referencedDeclaration": 2454, + "src": "1573:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2335, + "id": 2537, "indexExpression": { "argumentTypes": null, - "id": 2334, + "id": 2536, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2322, - "src": "1587:7:14", + "referencedDeclaration": 2524, + "src": "1587:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1388,7 +1388,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1573:22:14", + "src": "1573:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1399,14 +1399,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2336, + "id": 2538, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1598:5:14", + "src": "1598:5:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1414,57 +1414,57 @@ }, "value": "false" }, - "src": "1573:30:14", + "src": "1573:30:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2338, + "id": 2540, "nodeType": "ExpressionStatement", - "src": "1573:30:14" + "src": "1573:30:20" } ] }, "documentation": "@dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 2340, + "id": 2542, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2325, + "id": 2527, "modifierName": { "argumentTypes": null, - "id": 2324, + "id": 2526, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "1507:10:14", + "referencedDeclaration": 730, + "src": "1507:10:20", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1507:10:14" + "src": "1507:10:20" } ], "name": "removeFromWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 2323, + "id": 2525, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2322, + "id": 2524, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2340, - "src": "1467:15:14", + "scope": 2542, + "src": "1467:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1472,10 +1472,10 @@ "typeString": "address" }, "typeName": { - "id": 2321, + "id": 2523, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1467:7:14", + "src": "1467:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1485,26 +1485,26 @@ "visibility": "internal" } ], - "src": "1466:17:14" + "src": "1466:17:20" }, "payable": false, "returnParameters": { - "id": 2326, + "id": 2528, "nodeType": "ParameterList", "parameters": [], - "src": "1522:0:14" + "src": "1522:0:20" }, - "scope": 2381, - "src": "1438:172:14", + "scope": 2583, + "src": "1438:172:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2379, + "id": 2581, "nodeType": "Block", - "src": "1973:282:14", + "src": "1973:282:20", "statements": [ { "expression": { @@ -1517,18 +1517,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2356, + "id": 2558, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "2110:3:14", + "referencedDeclaration": 2598, + "src": "2110:3:20", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2357, + "id": 2559, "isConstant": false, "isLValue": false, "isPure": false, @@ -1536,7 +1536,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2110:10:14", + "src": "2110:10:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1555,14 +1555,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2353, + "id": 2555, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "2093:7:14", + "referencedDeclaration": 717, + "src": "2093:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } } @@ -1570,22 +1570,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } ], - "id": 2352, + "id": 2554, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2080:12:14", + "referencedDeclaration": 1472, + "src": "2080:12:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1343_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1472_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2354, + "id": 2556, "isConstant": false, "isLValue": false, "isPure": false, @@ -1593,27 +1593,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2080:21:14", + "src": "2080:21:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1343", + "typeIdentifier": "t_contract$_OwnerManager_$1472", "typeString": "contract OwnerManager" } }, - "id": 2355, + "id": 2557, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1293, - "src": "2080:29:14", + "referencedDeclaration": 1422, + "src": "2080:29:20", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 2358, + "id": 2560, "isConstant": false, "isLValue": false, "isPure": false, @@ -1621,7 +1621,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2080:41:14", + "src": "2080:41:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1635,21 +1635,21 @@ "typeString": "bool" } ], - "id": 2351, + "id": 2553, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2072:7:14", + "referencedDeclaration": 2601, + "src": "2072:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2359, + "id": 2561, "isConstant": false, "isLValue": false, "isPure": false, @@ -1657,15 +1657,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2072:50:14", + "src": "2072:50:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2360, + "id": 2562, "nodeType": "ExpressionStatement", - "src": "2072:50:14" + "src": "2072:50:20" }, { "expression": { @@ -1675,26 +1675,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2362, + "id": 2564, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2252, - "src": "2140:13:14", + "referencedDeclaration": 2454, + "src": "2140:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2364, + "id": 2566, "indexExpression": { "argumentTypes": null, - "id": 2363, + "id": 2565, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2342, - "src": "2154:2:14", + "referencedDeclaration": 2544, + "src": "2154:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1705,7 +1705,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2140:17:14", + "src": "2140:17:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1719,21 +1719,21 @@ "typeString": "bool" } ], - "id": 2361, + "id": 2563, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2132:7:14", + "referencedDeclaration": 2601, + "src": "2132:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2365, + "id": 2567, "isConstant": false, "isLValue": false, "isPure": false, @@ -1741,15 +1741,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2132:26:14", + "src": "2132:26:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2366, + "id": 2568, "nodeType": "ExpressionStatement", - "src": "2132:26:14" + "src": "2132:26:20" }, { "expression": { @@ -1760,12 +1760,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2370, + "id": 2572, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2342, - "src": "2210:2:14", + "referencedDeclaration": 2544, + "src": "2210:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1773,12 +1773,12 @@ }, { "argumentTypes": null, - "id": 2371, + "id": 2573, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2344, - "src": "2214:5:14", + "referencedDeclaration": 2546, + "src": "2214:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1786,12 +1786,12 @@ }, { "argumentTypes": null, - "id": 2372, + "id": 2574, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2346, - "src": "2221:4:14", + "referencedDeclaration": 2548, + "src": "2221:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1803,32 +1803,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2373, + "id": 2575, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "2227:4:14", + "referencedDeclaration": 30, + "src": "2227:4:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$6_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", "typeString": "type(contract Enum)" } }, - "id": 2374, + "id": 2576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "2227:14:14", + "referencedDeclaration": 29, + "src": "2227:14:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$5_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2375, + "id": 2577, "isConstant": false, "isLValue": false, "isPure": true, @@ -1836,9 +1836,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2227:19:14", + "src": "2227:19:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } } @@ -1858,38 +1858,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2368, + "id": 2570, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "2176:7:14", + "referencedDeclaration": 717, + "src": "2176:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } }, - "id": 2369, + "id": 2571, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 798, - "src": "2176:33:14", + "referencedDeclaration": 927, + "src": "2176:33:20", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2376, + "id": 2578, "isConstant": false, "isLValue": false, "isPure": false, @@ -1897,7 +1897,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2176:71:14", + "src": "2176:71:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1911,21 +1911,21 @@ "typeString": "bool" } ], - "id": 2367, + "id": 2569, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2168:7:14", + "referencedDeclaration": 2601, + "src": "2168:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2377, + "id": 2579, "isConstant": false, "isLValue": false, "isPure": false, @@ -1933,20 +1933,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2168:80:14", + "src": "2168:80:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2378, + "id": 2580, "nodeType": "ExpressionStatement", - "src": "2168:80:14" + "src": "2168:80:20" } ] }, "documentation": "@dev Returns if Safe transaction is to a whitelisted destination.\n @param to Whitelisted destination address.\n @param value Not checked.\n @param data Not checked.\n @return Returns if transaction can be executed.", - "id": 2380, + "id": 2582, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1954,16 +1954,16 @@ "name": "executeWhitelisted", "nodeType": "FunctionDefinition", "parameters": { - "id": 2347, + "id": 2549, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2342, + "id": 2544, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "1892:10:14", + "scope": 2582, + "src": "1892:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1971,10 +1971,10 @@ "typeString": "address" }, "typeName": { - "id": 2341, + "id": 2543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1892:7:14", + "src": "1892:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1985,11 +1985,11 @@ }, { "constant": false, - "id": 2344, + "id": 2546, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "1904:13:14", + "scope": 2582, + "src": "1904:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1997,10 +1997,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2343, + "id": 2545, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1904:7:14", + "src": "1904:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2011,11 +2011,11 @@ }, { "constant": false, - "id": 2346, + "id": 2548, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "1919:10:14", + "scope": 2582, + "src": "1919:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2023,10 +2023,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2345, + "id": 2547, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1919:5:14", + "src": "1919:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2036,20 +2036,20 @@ "visibility": "internal" } ], - "src": "1891:39:14" + "src": "1891:39:20" }, "payable": false, "returnParameters": { - "id": 2350, + "id": 2552, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2349, + "id": 2551, "name": "", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "1963:4:14", + "scope": 2582, + "src": "1963:4:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2057,10 +2057,10 @@ "typeString": "bool" }, "typeName": { - "id": 2348, + "id": 2550, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1963:4:14", + "src": "1963:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2070,82 +2070,82 @@ "visibility": "internal" } ], - "src": "1962:6:14" + "src": "1962:6:20" }, - "scope": 2381, - "src": "1864:391:14", + "scope": 2583, + "src": "1864:391:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2382, - "src": "289:1968:14" + "scope": 2584, + "src": "289:1968:20" } ], - "src": "0:2258:14" + "src": "0:2258:20" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", "exportedSymbols": { "WhitelistModule": [ - 2381 + 2583 ] }, - "id": 2382, + "id": 2584, "nodeType": "SourceUnit", "nodes": [ { - "id": 2236, + "id": 2438, "literals": [ "solidity", "0.4", - ".23" + ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:14" + "src": "0:23:20" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 2237, + "id": 2439, "nodeType": "ImportDirective", - "scope": 2382, - "sourceUnit": 7, - "src": "24:21:14", + "scope": 2584, + "sourceUnit": 31, + "src": "24:21:20", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 2238, + "id": 2440, "nodeType": "ImportDirective", - "scope": 2382, - "sourceUnit": 622, - "src": "46:23:14", + "scope": 2584, + "sourceUnit": 751, + "src": "46:23:20", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 2239, + "id": 2441, "nodeType": "ImportDirective", - "scope": 2382, - "sourceUnit": 972, - "src": "70:30:14", + "scope": 2584, + "sourceUnit": 1101, + "src": "70:30:20", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 2240, + "id": 2442, "nodeType": "ImportDirective", - "scope": 2382, - "sourceUnit": 1344, - "src": "101:29:14", + "scope": 2584, + "sourceUnit": 1473, + "src": "101:29:20", "symbolAliases": [], "unitAlias": "" }, @@ -2155,46 +2155,46 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2241, + "id": 2443, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 621, - "src": "317:6:14", + "referencedDeclaration": 750, + "src": "317:6:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$621", + "typeIdentifier": "t_contract$_Module_$750", "typeString": "contract Module" } }, - "id": 2242, + "id": 2444, "nodeType": "InheritanceSpecifier", - "src": "317:6:14" + "src": "317:6:20" } ], "contractDependencies": [ - 580, - 621, - 1359 + 652, + 750, + 1619 ], "contractKind": "contract", "documentation": "@title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n @author Stefan George - ", "fullyImplemented": true, - "id": 2381, + "id": 2583, "linearizedBaseContracts": [ - 2381, - 621, - 580, - 1359 + 2583, + 750, + 652, + 1619 ], "name": "WhitelistModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2245, + "id": 2447, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2381, - "src": "331:48:14", + "scope": 2583, + "src": "331:48:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2202,10 +2202,10 @@ "typeString": "string" }, "typeName": { - "id": 2243, + "id": 2445, "name": "string", "nodeType": "ElementaryTypeName", - "src": "331:6:14", + "src": "331:6:20", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2214,14 +2214,14 @@ "value": { "argumentTypes": null, "hexValue": "57686974656c697374204d6f64756c65", - "id": 2244, + "id": 2446, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "361:18:14", + "src": "361:18:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_84d69d03a7c747e8eefe7cc2b9e87b566cfc57cc90e4ed88f03f9c9780b7d4e6", @@ -2233,11 +2233,11 @@ }, { "constant": true, - "id": 2248, + "id": 2450, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2381, - "src": "385:40:14", + "scope": 2583, + "src": "385:40:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2245,10 +2245,10 @@ "typeString": "string" }, "typeName": { - "id": 2246, + "id": 2448, "name": "string", "nodeType": "ElementaryTypeName", - "src": "385:6:14", + "src": "385:6:20", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2257,14 +2257,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 2247, + "id": 2449, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "418:7:14", + "src": "418:7:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -2276,11 +2276,11 @@ }, { "constant": false, - "id": 2252, + "id": 2454, "name": "isWhitelisted", "nodeType": "VariableDeclaration", - "scope": 2381, - "src": "498:46:14", + "scope": 2583, + "src": "498:46:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2288,28 +2288,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 2251, + "id": 2453, "keyType": { - "id": 2249, + "id": 2451, "name": "address", "nodeType": "ElementaryTypeName", - "src": "507:7:14", + "src": "507:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "498:25:14", + "src": "498:25:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2250, + "id": 2452, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "518:4:14", + "src": "518:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2321,9 +2321,9 @@ }, { "body": { - "id": 2292, + "id": 2494, "nodeType": "Block", - "src": "721:216:14", + "src": "721:216:20", "statements": [ { "expression": { @@ -2331,18 +2331,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2258, + "id": 2460, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 620, - "src": "731:10:14", + "referencedDeclaration": 749, + "src": "731:10:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2259, + "id": 2461, "isConstant": false, "isLValue": false, "isPure": false, @@ -2350,34 +2350,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "731:12:14", + "src": "731:12:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2260, + "id": 2462, "nodeType": "ExpressionStatement", - "src": "731:12:14" + "src": "731:12:20" }, { "body": { - "id": 2290, + "id": 2492, "nodeType": "Block", - "src": "799:132:14", + "src": "799:132:20", "statements": [ { "assignments": [ - 2273 + 2475 ], "declarations": [ { "constant": false, - "id": 2273, + "id": 2475, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2293, - "src": "813:15:14", + "scope": 2495, + "src": "813:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2385,10 +2385,10 @@ "typeString": "address" }, "typeName": { - "id": 2272, + "id": 2474, "name": "address", "nodeType": "ElementaryTypeName", - "src": "813:7:14", + "src": "813:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2398,31 +2398,31 @@ "visibility": "internal" } ], - "id": 2277, + "id": 2479, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2274, + "id": 2476, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2255, - "src": "831:8:14", + "referencedDeclaration": 2457, + "src": "831:8:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2276, + "id": 2478, "indexExpression": { "argumentTypes": null, - "id": 2275, + "id": 2477, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2262, - "src": "840:1:14", + "referencedDeclaration": 2464, + "src": "840:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2433,14 +2433,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "831:11:14", + "src": "831:11:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "813:29:14" + "src": "813:29:20" }, { "expression": { @@ -2452,19 +2452,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2281, + "id": 2483, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2279, + "id": 2481, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2273, - "src": "864:7:14", + "referencedDeclaration": 2475, + "src": "864:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2475,14 +2475,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2280, + "id": 2482, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "875:1:14", + "src": "875:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2490,7 +2490,7 @@ }, "value": "0" }, - "src": "864:12:14", + "src": "864:12:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2504,21 +2504,21 @@ "typeString": "bool" } ], - "id": 2278, + "id": 2480, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "856:7:14", + "referencedDeclaration": 2601, + "src": "856:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2282, + "id": 2484, "isConstant": false, "isLValue": false, "isPure": false, @@ -2526,20 +2526,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "856:21:14", + "src": "856:21:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2283, + "id": 2485, "nodeType": "ExpressionStatement", - "src": "856:21:14" + "src": "856:21:20" }, { "expression": { "argumentTypes": null, - "id": 2288, + "id": 2490, "isConstant": false, "isLValue": false, "isPure": false, @@ -2548,26 +2548,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2284, + "id": 2486, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2252, - "src": "891:13:14", + "referencedDeclaration": 2454, + "src": "891:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2286, + "id": 2488, "indexExpression": { "argumentTypes": null, - "id": 2285, + "id": 2487, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2273, - "src": "905:7:14", + "referencedDeclaration": 2475, + "src": "905:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2578,7 +2578,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "891:22:14", + "src": "891:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2589,14 +2589,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2287, + "id": 2489, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "916:4:14", + "src": "916:4:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2604,15 +2604,15 @@ }, "value": "true" }, - "src": "891:29:14", + "src": "891:29:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2289, + "id": 2491, "nodeType": "ExpressionStatement", - "src": "891:29:14" + "src": "891:29:20" } ] }, @@ -2622,19 +2622,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2268, + "id": 2470, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2265, + "id": 2467, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2262, - "src": "773:1:14", + "referencedDeclaration": 2464, + "src": "773:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2646,18 +2646,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2266, + "id": 2468, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2255, - "src": "777:8:14", + "referencedDeclaration": 2457, + "src": "777:8:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2267, + "id": 2469, "isConstant": false, "isLValue": false, "isPure": false, @@ -2665,31 +2665,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "777:15:14", + "src": "777:15:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "773:19:14", + "src": "773:19:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2291, + "id": 2493, "initializationExpression": { "assignments": [ - 2262 + 2464 ], "declarations": [ { "constant": false, - "id": 2262, + "id": 2464, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2293, - "src": "758:9:14", + "scope": 2495, + "src": "758:9:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2697,10 +2697,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2261, + "id": 2463, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "758:7:14", + "src": "758:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2710,18 +2710,18 @@ "visibility": "internal" } ], - "id": 2264, + "id": 2466, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2263, + "id": 2465, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "770:1:14", + "src": "770:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2730,12 +2730,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "758:13:14" + "src": "758:13:20" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2270, + "id": 2472, "isConstant": false, "isLValue": false, "isPure": false, @@ -2743,15 +2743,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "794:3:14", + "src": "794:3:20", "subExpression": { "argumentTypes": null, - "id": 2269, + "id": 2471, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2262, - "src": "794:1:14", + "referencedDeclaration": 2464, + "src": "794:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2762,17 +2762,17 @@ "typeString": "uint256" } }, - "id": 2271, + "id": 2473, "nodeType": "ExpressionStatement", - "src": "794:3:14" + "src": "794:3:20" }, "nodeType": "ForStatement", - "src": "753:178:14" + "src": "753:178:20" } ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param accounts List of whitelisted accounts.", - "id": 2293, + "id": 2495, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2780,16 +2780,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2256, + "id": 2458, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2255, + "id": 2457, "name": "accounts", "nodeType": "VariableDeclaration", - "scope": 2293, - "src": "682:18:14", + "scope": 2495, + "src": "682:18:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2798,19 +2798,19 @@ }, "typeName": { "baseType": { - "id": 2253, + "id": 2455, "name": "address", "nodeType": "ElementaryTypeName", - "src": "682:7:14", + "src": "682:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2254, + "id": 2456, "length": null, "nodeType": "ArrayTypeName", - "src": "682:9:14", + "src": "682:9:20", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -2820,26 +2820,26 @@ "visibility": "internal" } ], - "src": "681:20:14" + "src": "681:20:20" }, "payable": false, "returnParameters": { - "id": 2257, + "id": 2459, "nodeType": "ParameterList", "parameters": [], - "src": "721:0:14" + "src": "721:0:20" }, - "scope": 2381, - "src": "667:270:14", + "scope": 2583, + "src": "667:270:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2319, + "id": 2521, "nodeType": "Block", - "src": "1165:119:14", + "src": "1165:119:20", "statements": [ { "expression": { @@ -2851,19 +2851,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2303, + "id": 2505, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2301, + "id": 2503, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2295, - "src": "1183:7:14", + "referencedDeclaration": 2497, + "src": "1183:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2874,14 +2874,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2302, + "id": 2504, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1194:1:14", + "src": "1194:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2889,7 +2889,7 @@ }, "value": "0" }, - "src": "1183:12:14", + "src": "1183:12:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2903,21 +2903,21 @@ "typeString": "bool" } ], - "id": 2300, + "id": 2502, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1175:7:14", + "referencedDeclaration": 2601, + "src": "1175:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2304, + "id": 2506, "isConstant": false, "isLValue": false, "isPure": false, @@ -2925,15 +2925,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1175:21:14", + "src": "1175:21:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2305, + "id": 2507, "nodeType": "ExpressionStatement", - "src": "1175:21:14" + "src": "1175:21:20" }, { "expression": { @@ -2941,7 +2941,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2310, + "id": 2512, "isConstant": false, "isLValue": false, "isPure": false, @@ -2949,31 +2949,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1214:23:14", + "src": "1214:23:20", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2307, + "id": 2509, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2252, - "src": "1215:13:14", + "referencedDeclaration": 2454, + "src": "1215:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2309, + "id": 2511, "indexExpression": { "argumentTypes": null, - "id": 2308, + "id": 2510, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2295, - "src": "1229:7:14", + "referencedDeclaration": 2497, + "src": "1229:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2984,7 +2984,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1215:22:14", + "src": "1215:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3003,21 +3003,21 @@ "typeString": "bool" } ], - "id": 2306, + "id": 2508, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1206:7:14", + "referencedDeclaration": 2601, + "src": "1206:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2311, + "id": 2513, "isConstant": false, "isLValue": false, "isPure": false, @@ -3025,20 +3025,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1206:32:14", + "src": "1206:32:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2312, + "id": 2514, "nodeType": "ExpressionStatement", - "src": "1206:32:14" + "src": "1206:32:20" }, { "expression": { "argumentTypes": null, - "id": 2317, + "id": 2519, "isConstant": false, "isLValue": false, "isPure": false, @@ -3047,26 +3047,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2313, + "id": 2515, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2252, - "src": "1248:13:14", + "referencedDeclaration": 2454, + "src": "1248:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2315, + "id": 2517, "indexExpression": { "argumentTypes": null, - "id": 2314, + "id": 2516, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2295, - "src": "1262:7:14", + "referencedDeclaration": 2497, + "src": "1262:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3077,7 +3077,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1248:22:14", + "src": "1248:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3088,14 +3088,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2316, + "id": 2518, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1273:4:14", + "src": "1273:4:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3103,57 +3103,57 @@ }, "value": "true" }, - "src": "1248:29:14", + "src": "1248:29:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2318, + "id": 2520, "nodeType": "ExpressionStatement", - "src": "1248:29:14" + "src": "1248:29:20" } ] }, "documentation": "@dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 2320, + "id": 2522, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2298, + "id": 2500, "modifierName": { "argumentTypes": null, - "id": 2297, + "id": 2499, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "1150:10:14", + "referencedDeclaration": 730, + "src": "1150:10:20", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1150:10:14" + "src": "1150:10:20" } ], "name": "addToWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 2296, + "id": 2498, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2295, + "id": 2497, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2320, - "src": "1110:15:14", + "scope": 2522, + "src": "1110:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3161,10 +3161,10 @@ "typeString": "address" }, "typeName": { - "id": 2294, + "id": 2496, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1110:7:14", + "src": "1110:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3174,26 +3174,26 @@ "visibility": "internal" } ], - "src": "1109:17:14" + "src": "1109:17:20" }, "payable": false, "returnParameters": { - "id": 2299, + "id": 2501, "nodeType": "ParameterList", "parameters": [], - "src": "1165:0:14" + "src": "1165:0:20" }, - "scope": 2381, - "src": "1086:198:14", + "scope": 2583, + "src": "1086:198:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2339, + "id": 2541, "nodeType": "Block", - "src": "1522:88:14", + "src": "1522:88:20", "statements": [ { "expression": { @@ -3203,26 +3203,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2328, + "id": 2530, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2252, - "src": "1540:13:14", + "referencedDeclaration": 2454, + "src": "1540:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2330, + "id": 2532, "indexExpression": { "argumentTypes": null, - "id": 2329, + "id": 2531, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2322, - "src": "1554:7:14", + "referencedDeclaration": 2524, + "src": "1554:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3233,7 +3233,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1540:22:14", + "src": "1540:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3247,21 +3247,21 @@ "typeString": "bool" } ], - "id": 2327, + "id": 2529, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "1532:7:14", + "referencedDeclaration": 2601, + "src": "1532:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2331, + "id": 2533, "isConstant": false, "isLValue": false, "isPure": false, @@ -3269,20 +3269,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1532:31:14", + "src": "1532:31:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2332, + "id": 2534, "nodeType": "ExpressionStatement", - "src": "1532:31:14" + "src": "1532:31:20" }, { "expression": { "argumentTypes": null, - "id": 2337, + "id": 2539, "isConstant": false, "isLValue": false, "isPure": false, @@ -3291,26 +3291,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2333, + "id": 2535, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2252, - "src": "1573:13:14", + "referencedDeclaration": 2454, + "src": "1573:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2335, + "id": 2537, "indexExpression": { "argumentTypes": null, - "id": 2334, + "id": 2536, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2322, - "src": "1587:7:14", + "referencedDeclaration": 2524, + "src": "1587:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3321,7 +3321,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1573:22:14", + "src": "1573:22:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3332,14 +3332,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2336, + "id": 2538, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1598:5:14", + "src": "1598:5:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3347,57 +3347,57 @@ }, "value": "false" }, - "src": "1573:30:14", + "src": "1573:30:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2338, + "id": 2540, "nodeType": "ExpressionStatement", - "src": "1573:30:14" + "src": "1573:30:20" } ] }, "documentation": "@dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 2340, + "id": 2542, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2325, + "id": 2527, "modifierName": { "argumentTypes": null, - "id": 2324, + "id": 2526, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 601, - "src": "1507:10:14", + "referencedDeclaration": 730, + "src": "1507:10:20", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1507:10:14" + "src": "1507:10:20" } ], "name": "removeFromWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 2323, + "id": 2525, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2322, + "id": 2524, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2340, - "src": "1467:15:14", + "scope": 2542, + "src": "1467:15:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3405,10 +3405,10 @@ "typeString": "address" }, "typeName": { - "id": 2321, + "id": 2523, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1467:7:14", + "src": "1467:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3418,26 +3418,26 @@ "visibility": "internal" } ], - "src": "1466:17:14" + "src": "1466:17:20" }, "payable": false, "returnParameters": { - "id": 2326, + "id": 2528, "nodeType": "ParameterList", "parameters": [], - "src": "1522:0:14" + "src": "1522:0:20" }, - "scope": 2381, - "src": "1438:172:14", + "scope": 2583, + "src": "1438:172:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2379, + "id": 2581, "nodeType": "Block", - "src": "1973:282:14", + "src": "1973:282:20", "statements": [ { "expression": { @@ -3450,18 +3450,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2356, + "id": 2558, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2396, - "src": "2110:3:14", + "referencedDeclaration": 2598, + "src": "2110:3:20", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2357, + "id": 2559, "isConstant": false, "isLValue": false, "isPure": false, @@ -3469,7 +3469,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2110:10:14", + "src": "2110:10:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3488,14 +3488,14 @@ "arguments": [ { "argumentTypes": null, - "id": 2353, + "id": 2555, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "2093:7:14", + "referencedDeclaration": 717, + "src": "2093:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } } @@ -3503,22 +3503,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } ], - "id": 2352, + "id": 2554, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1343, - "src": "2080:12:14", + "referencedDeclaration": 1472, + "src": "2080:12:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1343_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1472_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2354, + "id": 2556, "isConstant": false, "isLValue": false, "isPure": false, @@ -3526,27 +3526,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2080:21:14", + "src": "2080:21:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1343", + "typeIdentifier": "t_contract$_OwnerManager_$1472", "typeString": "contract OwnerManager" } }, - "id": 2355, + "id": 2557, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1293, - "src": "2080:29:14", + "referencedDeclaration": 1422, + "src": "2080:29:20", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 2358, + "id": 2560, "isConstant": false, "isLValue": false, "isPure": false, @@ -3554,7 +3554,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2080:41:14", + "src": "2080:41:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3568,21 +3568,21 @@ "typeString": "bool" } ], - "id": 2351, + "id": 2553, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2072:7:14", + "referencedDeclaration": 2601, + "src": "2072:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2359, + "id": 2561, "isConstant": false, "isLValue": false, "isPure": false, @@ -3590,15 +3590,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2072:50:14", + "src": "2072:50:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2360, + "id": 2562, "nodeType": "ExpressionStatement", - "src": "2072:50:14" + "src": "2072:50:20" }, { "expression": { @@ -3608,26 +3608,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2362, + "id": 2564, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2252, - "src": "2140:13:14", + "referencedDeclaration": 2454, + "src": "2140:13:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2364, + "id": 2566, "indexExpression": { "argumentTypes": null, - "id": 2363, + "id": 2565, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2342, - "src": "2154:2:14", + "referencedDeclaration": 2544, + "src": "2154:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3638,7 +3638,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2140:17:14", + "src": "2140:17:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3652,21 +3652,21 @@ "typeString": "bool" } ], - "id": 2361, + "id": 2563, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2132:7:14", + "referencedDeclaration": 2601, + "src": "2132:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2365, + "id": 2567, "isConstant": false, "isLValue": false, "isPure": false, @@ -3674,15 +3674,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2132:26:14", + "src": "2132:26:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2366, + "id": 2568, "nodeType": "ExpressionStatement", - "src": "2132:26:14" + "src": "2132:26:20" }, { "expression": { @@ -3693,12 +3693,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2370, + "id": 2572, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2342, - "src": "2210:2:14", + "referencedDeclaration": 2544, + "src": "2210:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3706,12 +3706,12 @@ }, { "argumentTypes": null, - "id": 2371, + "id": 2573, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2344, - "src": "2214:5:14", + "referencedDeclaration": 2546, + "src": "2214:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3719,12 +3719,12 @@ }, { "argumentTypes": null, - "id": 2372, + "id": 2574, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2346, - "src": "2221:4:14", + "referencedDeclaration": 2548, + "src": "2221:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3736,32 +3736,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2373, + "id": 2575, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "2227:4:14", + "referencedDeclaration": 30, + "src": "2227:4:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$6_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", "typeString": "type(contract Enum)" } }, - "id": 2374, + "id": 2576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "2227:14:14", + "referencedDeclaration": 29, + "src": "2227:14:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$5_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2375, + "id": 2577, "isConstant": false, "isLValue": false, "isPure": true, @@ -3769,9 +3769,9 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2227:19:14", + "src": "2227:19:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } } @@ -3791,38 +3791,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 2368, + "id": 2570, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "2176:7:14", + "referencedDeclaration": 717, + "src": "2176:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$971", + "typeIdentifier": "t_contract$_ModuleManager_$1100", "typeString": "contract ModuleManager" } }, - "id": 2369, + "id": 2571, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 798, - "src": "2176:33:14", + "referencedDeclaration": 927, + "src": "2176:33:20", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$5_$returns$_t_bool_$", + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$_t_enum$_Operation_$29_$returns$_t_bool_$", "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2376, + "id": 2578, "isConstant": false, "isLValue": false, "isPure": false, @@ -3830,7 +3830,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2176:71:14", + "src": "2176:71:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3844,21 +3844,21 @@ "typeString": "bool" } ], - "id": 2367, + "id": 2569, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2399, - 2400 + 2601, + 2602 ], - "referencedDeclaration": 2399, - "src": "2168:7:14", + "referencedDeclaration": 2601, + "src": "2168:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 2377, + "id": 2579, "isConstant": false, "isLValue": false, "isPure": false, @@ -3866,20 +3866,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2168:80:14", + "src": "2168:80:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2378, + "id": 2580, "nodeType": "ExpressionStatement", - "src": "2168:80:14" + "src": "2168:80:20" } ] }, "documentation": "@dev Returns if Safe transaction is to a whitelisted destination.\n @param to Whitelisted destination address.\n @param value Not checked.\n @param data Not checked.\n @return Returns if transaction can be executed.", - "id": 2380, + "id": 2582, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3887,16 +3887,16 @@ "name": "executeWhitelisted", "nodeType": "FunctionDefinition", "parameters": { - "id": 2347, + "id": 2549, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2342, + "id": 2544, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "1892:10:14", + "scope": 2582, + "src": "1892:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3904,10 +3904,10 @@ "typeString": "address" }, "typeName": { - "id": 2341, + "id": 2543, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1892:7:14", + "src": "1892:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3918,11 +3918,11 @@ }, { "constant": false, - "id": 2344, + "id": 2546, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "1904:13:14", + "scope": 2582, + "src": "1904:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3930,10 +3930,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2343, + "id": 2545, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1904:7:14", + "src": "1904:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3944,11 +3944,11 @@ }, { "constant": false, - "id": 2346, + "id": 2548, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "1919:10:14", + "scope": 2582, + "src": "1919:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3956,10 +3956,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2345, + "id": 2547, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1919:5:14", + "src": "1919:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3969,20 +3969,20 @@ "visibility": "internal" } ], - "src": "1891:39:14" + "src": "1891:39:20" }, "payable": false, "returnParameters": { - "id": 2350, + "id": 2552, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2349, + "id": 2551, "name": "", "nodeType": "VariableDeclaration", - "scope": 2380, - "src": "1963:4:14", + "scope": 2582, + "src": "1963:4:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3990,10 +3990,10 @@ "typeString": "bool" }, "typeName": { - "id": 2348, + "id": 2550, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1963:4:14", + "src": "1963:4:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4003,63 +4003,45 @@ "visibility": "internal" } ], - "src": "1962:6:14" + "src": "1962:6:20" }, - "scope": 2381, - "src": "1864:391:14", + "scope": 2583, + "src": "1864:391:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2382, - "src": "289:1968:14" + "scope": 2584, + "src": "289:1968:20" } ], - "src": "0:2258:14" + "src": "0:2258:20" }, "compiler": { "name": "solc", - "version": "0.4.23+commit.124ca40d.Emscripten.clang" + "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { "4": { "events": {}, "links": {}, - "address": "0x4e2dfbbb0f2b3225fdcdec7e05dcd92c92832fbd", - "transactionHash": "0x1b787034883e27a45b7b9a90b77670ef807701894a32904f573a60b666b3bd94" - }, - "1525950336085": { - "events": {}, - "links": {}, - "address": "0x15fd83fcf27f1726e692389be1b6e03fe7d56bb6", - "transactionHash": "0xc7f84311daf6a72740fe5822cd6007cec3ce1ff6aeaf454559f3e5f36c81cfd8" - }, - "1526283540628": { - "events": {}, - "links": {}, - "address": "0x536f677993e3eada3e17f2f42888ee777441fc3e", - "transactionHash": "0xc7f84311daf6a72740fe5822cd6007cec3ce1ff6aeaf454559f3e5f36c81cfd8" - }, - "1526478212260": { - "events": {}, - "links": {}, - "address": "0x5fde4f39a944859214e24311ad809166d35b2595", - "transactionHash": "0xe8e4d24799a8b74210c07b7faa44968bece2c73df692920f7af75181654e10f2" - }, - "1526973574996": { - "events": {}, - "links": {}, - "address": "0xba3ef9cf5be6c120fc0a642690f297e3bd239aa3", - "transactionHash": "0xe8e4d24799a8b74210c07b7faa44968bece2c73df692920f7af75181654e10f2" + "address": "0xc9ecedc3f0aa6ec4dc9b6a46bace62480a607617", + "transactionHash": "0xe39c78298afab44ba85b809e6c6d8050d841d420a98a45615afc3c69a7733e05" }, "1527316019334": { "events": {}, "links": {}, - "address": "0xa0a2c39cdfb6d7fb2f9b88990703f1b3c44ad5dc", - "transactionHash": "0xe8e4d24799a8b74210c07b7faa44968bece2c73df692920f7af75181654e10f2" + "address": "0xa0a04217f63fe5026bc20445af8ded0dffaccbc2", + "transactionHash": "0x10a442e0b3d7b44501719f123d9180db28c9206bfaf6163dfbfc2b987eb0e33f" + }, + "1527420696956": { + "events": {}, + "links": {}, + "address": "0x00d378002af4eccf8548c93aaf9d2b42d7d57239", + "transactionHash": "0x37296a82258f36484727e72673860ef6ed238e3754263014e3f3ff9a8997b64b" } }, "schemaVersion": "2.0.0", - "updatedAt": "2018-05-26T06:28:28.359Z" + "updatedAt": "2018-05-27T11:31:46.258Z" } \ No newline at end of file