diff --git a/package.json b/package.json index 30e8c0a2..32080ba2 100644 --- a/package.json +++ b/package.json @@ -101,6 +101,7 @@ "webpack-manifest-plugin": "^2.0.0-rc.2" }, "dependencies": { + "@gnosis.pm/util-contracts": "^0.2.14", "@material-ui/core": "^1.2.1", "@material-ui/icons": "^1.1.0", "final-form": "^4.2.1", diff --git a/safe-contracts/build/contracts/CreateAndAddModules.json b/safe-contracts/build/contracts/CreateAndAddModules.json index 39a6da80..8065bb00 100644 --- a/safe-contracts/build/contracts/CreateAndAddModules.json +++ b/safe-contracts/build/contracts/CreateAndAddModules.json @@ -44,14 +44,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", "exportedSymbols": { "CreateAndAddModules": [ - 1830 + 1789 ] }, - "id": 1831, + "id": 1790, "nodeType": "SourceUnit", "nodes": [ { - "id": 1787, + "id": 1746, "literals": [ "solidity", "0.4", @@ -63,9 +63,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 1788, + "id": 1747, "nodeType": "ImportDirective", - "scope": 1831, + "scope": 1790, "sourceUnit": 733, "src": "24:23:16", "symbolAliases": [], @@ -77,16 +77,16 @@ "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": 1830, + "id": 1789, "linearizedBaseContracts": [ - 1830 + 1789 ], "name": "CreateAndAddModules", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1796, + "id": 1755, "nodeType": "Block", "src": "461:25:16", "statements": [ @@ -96,21 +96,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1793, + "id": 1752, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 2705, - 2706 + 2664, + 2665 ], - "referencedDeclaration": 2705, + "referencedDeclaration": 2664, "src": "471:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1794, + "id": 1753, "isConstant": false, "isLValue": false, "isPure": false, @@ -124,14 +124,14 @@ "typeString": "tuple()" } }, - "id": 1795, + "id": 1754, "nodeType": "ExpressionStatement", "src": "471:8:16" } ] }, "documentation": "@dev Function required to compile contract. Gnosis Safe function is called instead.\n @param module Not used.", - "id": 1797, + "id": 1756, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -139,15 +139,15 @@ "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1791, + "id": 1750, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1790, + "id": 1749, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1797, + "scope": 1756, "src": "427:13:16", "stateVariable": false, "storageLocation": "default", @@ -157,7 +157,7 @@ }, "typeName": { "contractScope": null, - "id": 1789, + "id": 1748, "name": "Module", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 732, @@ -175,12 +175,12 @@ }, "payable": false, "returnParameters": { - "id": 1792, + "id": 1751, "nodeType": "ParameterList", "parameters": [], "src": "461:0:16" }, - "scope": 1830, + "scope": 1789, "src": "405:81:16", "stateMutability": "nonpayable", "superFunction": null, @@ -188,21 +188,21 @@ }, { "body": { - "id": 1828, + "id": 1787, "nodeType": "Block", "src": "897:803:16", "statements": [ { "assignments": [ - 1805 + 1764 ], "declarations": [ { "constant": false, - "id": 1805, + "id": 1764, "name": "length", "nodeType": "VariableDeclaration", - "scope": 1829, + "scope": 1788, "src": "907:14:16", "stateVariable": false, "storageLocation": "default", @@ -211,7 +211,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1804, + "id": 1763, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "907:7:16", @@ -224,23 +224,23 @@ "visibility": "internal" } ], - "id": 1808, + "id": 1767, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1806, + "id": 1765, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, + "referencedDeclaration": 1760, "src": "924:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1807, + "id": 1766, "isConstant": false, "isLValue": false, "isPure": false, @@ -262,10 +262,10 @@ "declarations": [ { "constant": false, - "id": 1810, + "id": 1769, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1829, + "scope": 1788, "src": "945:13:16", "stateVariable": false, "storageLocation": "default", @@ -275,7 +275,7 @@ }, "typeName": { "contractScope": null, - "id": 1809, + "id": 1768, "name": "Module", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 732, @@ -289,22 +289,22 @@ "visibility": "internal" } ], - "id": 1811, + "id": 1770, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "945:13:16" }, { "assignments": [ - 1813 + 1772 ], "declarations": [ { "constant": false, - "id": 1813, + "id": 1772, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1829, + "scope": 1788, "src": "968:9:16", "stateVariable": false, "storageLocation": "default", @@ -313,7 +313,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1812, + "id": 1771, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "968:7:16", @@ -326,11 +326,11 @@ "visibility": "internal" } ], - "id": 1815, + "id": 1774, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1814, + "id": 1773, "isConstant": false, "isLValue": false, "isPure": true, @@ -350,7 +350,7 @@ }, { "body": { - "id": 1826, + "id": 1785, "nodeType": "Block", "src": "1010:684:16", "statements": [ @@ -358,7 +358,7 @@ "externalReferences": [ { "module": { - "declaration": 1810, + "declaration": 1769, "isOffset": false, "isSlot": false, "src": "1414:6:16", @@ -367,7 +367,7 @@ }, { "data": { - "declaration": 1801, + "declaration": 1760, "isOffset": false, "isSlot": false, "src": "1164:4:16", @@ -376,7 +376,7 @@ }, { "i": { - "declaration": 1813, + "declaration": 1772, "isOffset": false, "isSlot": false, "src": "1170:1:16", @@ -385,7 +385,7 @@ }, { "data": { - "declaration": 1801, + "declaration": 1760, "isOffset": false, "isSlot": false, "src": "1224:4:16", @@ -394,7 +394,7 @@ }, { "i": { - "declaration": 1813, + "declaration": 1772, "isOffset": false, "isSlot": false, "src": "1230:1:16", @@ -403,7 +403,7 @@ }, { "i": { - "declaration": 1813, + "declaration": 1772, "isOffset": false, "isSlot": false, "src": "1557:1:16", @@ -412,7 +412,7 @@ }, { "proxyFactory": { - "declaration": 1799, + "declaration": 1758, "isOffset": false, "isSlot": false, "src": "1317:12:16", @@ -421,7 +421,7 @@ }, { "i": { - "declaration": 1813, + "declaration": 1772, "isOffset": false, "isSlot": false, "src": "1566:1:16", @@ -429,7 +429,7 @@ } } ], - "id": 1819, + "id": 1778, "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, 0x1f), 0x20), 0x20)))\n}", "src": "1092:570:16" @@ -440,11 +440,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1823, + "id": 1782, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1810, + "referencedDeclaration": 1769, "src": "1676:6:16", "typeDescriptions": { "typeIdentifier": "t_contract$_Module_$732", @@ -461,32 +461,32 @@ ], "expression": { "argumentTypes": null, - "id": 1820, + "id": 1779, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2745, + "referencedDeclaration": 2704, "src": "1658:4:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_CreateAndAddModules_$1830", + "typeIdentifier": "t_contract$_CreateAndAddModules_$1789", "typeString": "contract CreateAndAddModules" } }, - "id": 1822, + "id": 1781, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "enableModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1797, + "referencedDeclaration": 1756, "src": "1658:17:16", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$732_$returns$__$", "typeString": "function (contract Module) external" } }, - "id": 1824, + "id": 1783, "isConstant": false, "isLValue": false, "isPure": false, @@ -500,7 +500,7 @@ "typeString": "tuple()" } }, - "id": 1825, + "id": 1784, "nodeType": "ExpressionStatement", "src": "1658:25:16" } @@ -512,18 +512,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1818, + "id": 1777, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1816, + "id": 1775, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1813, + "referencedDeclaration": 1772, "src": "998:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -534,11 +534,11 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 1817, + "id": 1776, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, + "referencedDeclaration": 1764, "src": "1002:6:16", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -551,14 +551,14 @@ "typeString": "bool" } }, - "id": 1827, + "id": 1786, "nodeType": "WhileStatement", "src": "991:703:16" } ] }, "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": 1829, + "id": 1788, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -566,15 +566,15 @@ "name": "createAndAddModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 1802, + "id": 1761, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1799, + "id": 1758, "name": "proxyFactory", "nodeType": "VariableDeclaration", - "scope": 1829, + "scope": 1788, "src": "844:20:16", "stateVariable": false, "storageLocation": "default", @@ -583,7 +583,7 @@ "typeString": "address" }, "typeName": { - "id": 1798, + "id": 1757, "name": "address", "nodeType": "ElementaryTypeName", "src": "844:7:16", @@ -597,10 +597,10 @@ }, { "constant": false, - "id": 1801, + "id": 1760, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1829, + "scope": 1788, "src": "866:10:16", "stateVariable": false, "storageLocation": "default", @@ -609,7 +609,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1800, + "id": 1759, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "866:5:16", @@ -626,19 +626,19 @@ }, "payable": false, "returnParameters": { - "id": 1803, + "id": 1762, "nodeType": "ParameterList", "parameters": [], "src": "897:0:16" }, - "scope": 1830, + "scope": 1789, "src": "815:885:16", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1831, + "scope": 1790, "src": "245:1457:16" } ], @@ -648,14 +648,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/CreateAndAddModules.sol", "exportedSymbols": { "CreateAndAddModules": [ - 1830 + 1789 ] }, - "id": 1831, + "id": 1790, "nodeType": "SourceUnit", "nodes": [ { - "id": 1787, + "id": 1746, "literals": [ "solidity", "0.4", @@ -667,9 +667,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 1788, + "id": 1747, "nodeType": "ImportDirective", - "scope": 1831, + "scope": 1790, "sourceUnit": 733, "src": "24:23:16", "symbolAliases": [], @@ -681,16 +681,16 @@ "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": 1830, + "id": 1789, "linearizedBaseContracts": [ - 1830 + 1789 ], "name": "CreateAndAddModules", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1796, + "id": 1755, "nodeType": "Block", "src": "461:25:16", "statements": [ @@ -700,21 +700,21 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1793, + "id": 1752, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 2705, - 2706 + 2664, + 2665 ], - "referencedDeclaration": 2705, + "referencedDeclaration": 2664, "src": "471:6:16", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$__$returns$__$", "typeString": "function () pure" } }, - "id": 1794, + "id": 1753, "isConstant": false, "isLValue": false, "isPure": false, @@ -728,14 +728,14 @@ "typeString": "tuple()" } }, - "id": 1795, + "id": 1754, "nodeType": "ExpressionStatement", "src": "471:8:16" } ] }, "documentation": "@dev Function required to compile contract. Gnosis Safe function is called instead.\n @param module Not used.", - "id": 1797, + "id": 1756, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -743,15 +743,15 @@ "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 1791, + "id": 1750, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1790, + "id": 1749, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1797, + "scope": 1756, "src": "427:13:16", "stateVariable": false, "storageLocation": "default", @@ -761,7 +761,7 @@ }, "typeName": { "contractScope": null, - "id": 1789, + "id": 1748, "name": "Module", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 732, @@ -779,12 +779,12 @@ }, "payable": false, "returnParameters": { - "id": 1792, + "id": 1751, "nodeType": "ParameterList", "parameters": [], "src": "461:0:16" }, - "scope": 1830, + "scope": 1789, "src": "405:81:16", "stateMutability": "nonpayable", "superFunction": null, @@ -792,21 +792,21 @@ }, { "body": { - "id": 1828, + "id": 1787, "nodeType": "Block", "src": "897:803:16", "statements": [ { "assignments": [ - 1805 + 1764 ], "declarations": [ { "constant": false, - "id": 1805, + "id": 1764, "name": "length", "nodeType": "VariableDeclaration", - "scope": 1829, + "scope": 1788, "src": "907:14:16", "stateVariable": false, "storageLocation": "default", @@ -815,7 +815,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1804, + "id": 1763, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "907:7:16", @@ -828,23 +828,23 @@ "visibility": "internal" } ], - "id": 1808, + "id": 1767, "initialValue": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1806, + "id": 1765, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1801, + "referencedDeclaration": 1760, "src": "924:4:16", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 1807, + "id": 1766, "isConstant": false, "isLValue": false, "isPure": false, @@ -866,10 +866,10 @@ "declarations": [ { "constant": false, - "id": 1810, + "id": 1769, "name": "module", "nodeType": "VariableDeclaration", - "scope": 1829, + "scope": 1788, "src": "945:13:16", "stateVariable": false, "storageLocation": "default", @@ -879,7 +879,7 @@ }, "typeName": { "contractScope": null, - "id": 1809, + "id": 1768, "name": "Module", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 732, @@ -893,22 +893,22 @@ "visibility": "internal" } ], - "id": 1811, + "id": 1770, "initialValue": null, "nodeType": "VariableDeclarationStatement", "src": "945:13:16" }, { "assignments": [ - 1813 + 1772 ], "declarations": [ { "constant": false, - "id": 1813, + "id": 1772, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1829, + "scope": 1788, "src": "968:9:16", "stateVariable": false, "storageLocation": "default", @@ -917,7 +917,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1812, + "id": 1771, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "968:7:16", @@ -930,11 +930,11 @@ "visibility": "internal" } ], - "id": 1815, + "id": 1774, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1814, + "id": 1773, "isConstant": false, "isLValue": false, "isPure": true, @@ -954,7 +954,7 @@ }, { "body": { - "id": 1826, + "id": 1785, "nodeType": "Block", "src": "1010:684:16", "statements": [ @@ -962,7 +962,7 @@ "externalReferences": [ { "module": { - "declaration": 1810, + "declaration": 1769, "isOffset": false, "isSlot": false, "src": "1414:6:16", @@ -971,7 +971,7 @@ }, { "data": { - "declaration": 1801, + "declaration": 1760, "isOffset": false, "isSlot": false, "src": "1164:4:16", @@ -980,7 +980,7 @@ }, { "i": { - "declaration": 1813, + "declaration": 1772, "isOffset": false, "isSlot": false, "src": "1170:1:16", @@ -989,7 +989,7 @@ }, { "data": { - "declaration": 1801, + "declaration": 1760, "isOffset": false, "isSlot": false, "src": "1224:4:16", @@ -998,7 +998,7 @@ }, { "i": { - "declaration": 1813, + "declaration": 1772, "isOffset": false, "isSlot": false, "src": "1230:1:16", @@ -1007,7 +1007,7 @@ }, { "i": { - "declaration": 1813, + "declaration": 1772, "isOffset": false, "isSlot": false, "src": "1557:1:16", @@ -1016,7 +1016,7 @@ }, { "proxyFactory": { - "declaration": 1799, + "declaration": 1758, "isOffset": false, "isSlot": false, "src": "1317:12:16", @@ -1025,7 +1025,7 @@ }, { "i": { - "declaration": 1813, + "declaration": 1772, "isOffset": false, "isSlot": false, "src": "1566:1:16", @@ -1033,7 +1033,7 @@ } } ], - "id": 1819, + "id": 1778, "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, 0x1f), 0x20), 0x20)))\n}", "src": "1092:570:16" @@ -1044,11 +1044,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1823, + "id": 1782, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1810, + "referencedDeclaration": 1769, "src": "1676:6:16", "typeDescriptions": { "typeIdentifier": "t_contract$_Module_$732", @@ -1065,32 +1065,32 @@ ], "expression": { "argumentTypes": null, - "id": 1820, + "id": 1779, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2745, + "referencedDeclaration": 2704, "src": "1658:4:16", "typeDescriptions": { - "typeIdentifier": "t_contract$_CreateAndAddModules_$1830", + "typeIdentifier": "t_contract$_CreateAndAddModules_$1789", "typeString": "contract CreateAndAddModules" } }, - "id": 1822, + "id": 1781, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "enableModule", "nodeType": "MemberAccess", - "referencedDeclaration": 1797, + "referencedDeclaration": 1756, "src": "1658:17:16", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_contract$_Module_$732_$returns$__$", "typeString": "function (contract Module) external" } }, - "id": 1824, + "id": 1783, "isConstant": false, "isLValue": false, "isPure": false, @@ -1104,7 +1104,7 @@ "typeString": "tuple()" } }, - "id": 1825, + "id": 1784, "nodeType": "ExpressionStatement", "src": "1658:25:16" } @@ -1116,18 +1116,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1818, + "id": 1777, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1816, + "id": 1775, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1813, + "referencedDeclaration": 1772, "src": "998:1:16", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1138,11 +1138,11 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 1817, + "id": 1776, "name": "length", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, + "referencedDeclaration": 1764, "src": "1002:6:16", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1155,14 +1155,14 @@ "typeString": "bool" } }, - "id": 1827, + "id": 1786, "nodeType": "WhileStatement", "src": "991:703:16" } ] }, "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": 1829, + "id": 1788, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1170,15 +1170,15 @@ "name": "createAndAddModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 1802, + "id": 1761, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1799, + "id": 1758, "name": "proxyFactory", "nodeType": "VariableDeclaration", - "scope": 1829, + "scope": 1788, "src": "844:20:16", "stateVariable": false, "storageLocation": "default", @@ -1187,7 +1187,7 @@ "typeString": "address" }, "typeName": { - "id": 1798, + "id": 1757, "name": "address", "nodeType": "ElementaryTypeName", "src": "844:7:16", @@ -1201,10 +1201,10 @@ }, { "constant": false, - "id": 1801, + "id": 1760, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1829, + "scope": 1788, "src": "866:10:16", "stateVariable": false, "storageLocation": "default", @@ -1213,7 +1213,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1800, + "id": 1759, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "866:5:16", @@ -1230,19 +1230,19 @@ }, "payable": false, "returnParameters": { - "id": 1803, + "id": 1762, "nodeType": "ParameterList", "parameters": [], "src": "897:0:16" }, - "scope": 1830, + "scope": 1789, "src": "815:885:16", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1831, + "scope": 1790, "src": "245:1457:16" } ], @@ -1253,85 +1253,13 @@ "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { - "4": { + "1530197641790": { "events": {}, "links": {}, - "address": "0x5900bc272839883955dec0c65035561e5b773394", - "transactionHash": "0x237a3ef45930b71459744e5260bf90582967a78a962cf024a554e3c0b0e33157" - }, - "1529327661534": { - "events": {}, - "links": {}, - "address": "0x819746e02c2fcacc4f288d0a648b8ed04dab5716", - "transactionHash": "0x9c9cae1cef9fdfbb54ebe59b4dc70e223493f0a1d681df7ce06bedcf90e0d37f" - }, - "1529333415702": { - "events": {}, - "links": {}, - "address": "0xadf257fb7290315d37d6b11ccdbb648a5d3d148f", - "transactionHash": "0x80d74510df045a8b9ff09a084394dfd4eae7b7db3921dd9bde780fa7edf4d076" - }, - "1529652204341": { - "events": {}, - "links": {}, - "address": "0x8abc460ef144c8a56bee97dc35821f3adff74f3c", - "transactionHash": "0x7af1e557142bc9cc9bedcfbd550efa8d91bfabefb4cde8f29294155c9465c137" - }, - "1529931780812": { - "events": {}, - "links": {}, - "address": "0xb3f6404bb7efd44e4ad52288eb037b9bb1efca89", - "transactionHash": "0x7af1e557142bc9cc9bedcfbd550efa8d91bfabefb4cde8f29294155c9465c137" - }, - "1529933005377": { - "events": {}, - "links": {}, - "address": "0x9dc5f538dc13663685e223509bd1cfa54c809ced", - "transactionHash": "0x7af1e557142bc9cc9bedcfbd550efa8d91bfabefb4cde8f29294155c9465c137" - }, - "1529934931891": { - "events": {}, - "links": {}, - "address": "0xa5068eb18c8de81e2db6f2c4280086410f0add1b", - "transactionHash": "0x7af1e557142bc9cc9bedcfbd550efa8d91bfabefb4cde8f29294155c9465c137" - }, - "1529935355957": { - "events": {}, - "links": {}, - "address": "0xafd6055207415c8c3191da0dabc5004782d47917", - "transactionHash": "0x7af1e557142bc9cc9bedcfbd550efa8d91bfabefb4cde8f29294155c9465c137" - }, - "1529936204222": { - "events": {}, - "links": {}, - "address": "0xc48852409bfc695d785c99ebe69b301ff8e76523", - "transactionHash": "0x7af1e557142bc9cc9bedcfbd550efa8d91bfabefb4cde8f29294155c9465c137" - }, - "1529937280871": { - "events": {}, - "links": {}, - "address": "0x726c8523e946c9d64cb7b10b27c94480a57b6f14", - "transactionHash": "0x7af1e557142bc9cc9bedcfbd550efa8d91bfabefb4cde8f29294155c9465c137" - }, - "1529937637076": { - "events": {}, - "links": {}, - "address": "0xbf725058a1fa82e9c9850bbf442be8bf279064e1", - "transactionHash": "0x7af1e557142bc9cc9bedcfbd550efa8d91bfabefb4cde8f29294155c9465c137" - }, - "1529937890676": { - "events": {}, - "links": {}, - "address": "0x4b77727cca6579c290b543ae2256a377eeec3778", - "transactionHash": "0x7af1e557142bc9cc9bedcfbd550efa8d91bfabefb4cde8f29294155c9465c137" - }, - "1530013596495": { - "events": {}, - "links": {}, - "address": "0x940a33f551e274814b0a768b2c10d5d536c9d2e8", - "transactionHash": "0x7af1e557142bc9cc9bedcfbd550efa8d91bfabefb4cde8f29294155c9465c137" + "address": "0xd41041c2a435ad04244daa2623d4dee511beaa39", + "transactionHash": "0xbb42f9f7659cfd363fd714e55fc93973b3d57b340433da842df1723232f6610a" } }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-26T11:47:04.152Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:58.213Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/DailyLimitModule.json b/safe-contracts/build/contracts/DailyLimitModule.json index 4bb9ea72..3f5f8e78 100644 --- a/safe-contracts/build/contracts/DailyLimitModule.json +++ b/safe-contracts/build/contracts/DailyLimitModule.json @@ -157,24 +157,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061129b806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d00565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee3565b005b3480156102a757600080fd5b506102b0611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340611052565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0611094565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104556110cd565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b810190808051906020019092919050505015156106a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b6000821115156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107b584836111c0565b1515610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff161415610a3c57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095157fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d60208110156109b257600080fd5b81019080805190602001909291905050501515610a37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610cfa565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bbb57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4a57600080fd5b505af1158015610c5e573d6000803e3d6000fd5b505050506040513d6020811015610c7457600080fd5b81019080805190602001909291905050501515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ea0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561106257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611211611052565b11156112325761121f611052565b8160020181905550600081600101819055505b806000015483826001015401111580156112555750806001015483826001015401115b156112635760019150611268565b600091505b50929150505600a165627a7a7230582051d9306b33e558e23465d9439d6e2e76cb102312417befb2ee5813ea8d9487f00029", - "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d00565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee3565b005b3480156102a757600080fd5b506102b0611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340611052565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0611094565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104556110cd565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b810190808051906020019092919050505015156106a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b6000821115156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107b584836111c0565b1515610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff161415610a3c57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095157fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d60208110156109b257600080fd5b81019080805190602001909291905050501515610a37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610cfa565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bbb57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4a57600080fd5b505af1158015610c5e573d6000803e3d6000fd5b505050506040513d6020811015610c7457600080fd5b81019080805190602001909291905050501515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ea0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561106257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611211611052565b11156112325761121f611052565b8160020181905550600081600101819055505b806000015483826001015401111580156112555750806001015483826001015401115b156112635760019150611268565b600091505b50929150505600a165627a7a7230582051d9306b33e558e23465d9439d6e2e76cb102312417befb2ee5813ea8d9487f00029", - "sourceMap": "296:3285:18:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;296:3285:18;;;;;;;", - "deployedSourceMap": "296:3285:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;918:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;918:222:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;1890:987:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1890:987:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1368:158:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1368:158:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;339:50: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;339:50:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3463:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3463:116:18;;;;;;;;;;;;;;;;;;;;;;;513:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;513:50:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;395:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;395: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;395:40:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:987:18:-;2647:17;2087:7;;;;;;;;;;;2074:29;;;2104:10;2074:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2074:41:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2074:41:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2074:41:18;;;;;;;;;;;;;;;;2066:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2181:1;2175:2;:7;;;;2167:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:1;2232:6;:10;2224:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2352:27;2365:5;2372:6;2352:12;:27::i;:::-;2344:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2455:6;2422:11;:18;2434:5;2422:18;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;2484:1;2475:5;:10;;;2471:400;;;2509:7;;;;;;;;;;;:33;;;2543:2;2547:6;2559:19;2509:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2509:70:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2509:70:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2509:70:18;;;;;;;;;;;;;;;;2501:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:400;;;2720:2;2724:6;2667:64;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2667:64: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;;;2667:64:18;2647:84;;2753:7;;;;;;;;;;;:33;;;2787:5;2794:1;2797:4;2803:19;2753: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;2753:70:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2753:70:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2753:70:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2753:70:18;;;;;;;;;;;;;;;;2745:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:400;1890:987;;;;:::o;626:248:5:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;1368:158:18:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1509:10:18;1477:11;:18;1489:5;1477:18;;;;;;;;;;;;;;;:29;;:42;;;;1368:158;;:::o;339:50::-;;;;;;;;;;;;;;;;;;;;:::o;3463:116::-;3525:4;3565:6;3559:3;:12;;;;;;;;3552:3;:20;3545:27;;3463:116;:::o;513:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;395:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:7:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o;2883:488:18:-;2970:4;2990:29;3022:11;:18;3034:5;3022:18;;;;;;;;;;;;;;;2990:50;;3064:10;:18;;;3054:7;:5;:7::i;:::-;:28;3050:126;;;3119:7;:5;:7::i;:::-;3098:10;:18;;:28;;;;3164:1;3140:10;:21;;:25;;;;3050:126;3226:10;:21;;;3216:6;3192:10;:21;;;:30;:55;;:125;;;;;3296:10;:21;;;3287:6;3263:10;:21;;;:30;:54;3192:125;3185:157;;;3338:4;3331:11;;;;3185:157;3359:5;3352:12;;2883: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), \"Method can only be called by an owner\");\n require(to != 0, \"Invalid to address provided\");\n require(amount > 0, \"Invalid amount provided\");\n // Validate that transfer is not exceeding daily limit.\n require(isUnderLimit(token, amount), \"Daily limit has been reached\");\n dailyLimits[token].spentToday += amount;\n if (token == 0) {\n require(manager.execTransactionFromModule(to, amount, \"\", Enum.Operation.Call), \"Could not execute ether transfer\");\n } else {\n bytes memory data = abi.encodeWithSignature(\"transfer(address,uint256)\", to, amount);\n require(manager.execTransactionFromModule(token, 0, data, Enum.Operation.Call), \"Could not execute token transfer\");\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", + "bytecode": "0x608060405234801561001057600080fd5b5061129b806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d00565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee3565b005b3480156102a757600080fd5b506102b0611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340611052565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0611094565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104556110cd565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b810190808051906020019092919050505015156106a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b6000821115156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107b584836111c0565b1515610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff161415610a3c57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095157fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d60208110156109b257600080fd5b81019080805190602001909291905050501515610a37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610cfa565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bbb57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4a57600080fd5b505af1158015610c5e573d6000803e3d6000fd5b505050506040513d6020811015610c7457600080fd5b81019080805190602001909291905050501515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ea0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561106257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611211611052565b11156112325761121f611052565b8160020181905550600081600101819055505b806000015483826001015401111580156112555750806001015483826001015401115b156112635760019150611268565b600091505b50929150505600a165627a7a72305820829e0119c133a410205606912728b71003dbd7359410bad5c3588c1681dc2d3d0029", + "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806328814f031461009e578063481c6a751461014757806363bae7c31461019e5780637de7edef1461020b57806381c5e03b1461024e578063a3f4df7e1461029b578063b74e452b1461032b578063d7bffc9214610356578063ffa1ad74146103bb575b600080fd5b3480156100aa57600080fd5b50610145600480360381019080803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061044b565b005b34801561015357600080fd5b5061015c6104ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101aa57600080fd5b50610209600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610510565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d00565b005b34801561025a57600080fd5b50610299600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ee3565b005b3480156102a757600080fd5b506102b0611019565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102f05780820151818401526020810190506102d5565b50505050905090810190601f16801561031d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033757600080fd5b50610340611052565b6040518082815260200191505060405180910390f35b34801561036257600080fd5b50610397600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061106a565b60405180848152602001838152602001828152602001935050505060405180910390f35b3480156103c757600080fd5b506103d0611094565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104105780820151818401526020810190506103f5565b50505050905090810190601f16801561043d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006104556110cd565b600090505b82518110156104e557818181518110151561047157fe5b9060200190602002015160026000858481518110151561048d57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550808060010191505061045a565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b1580156105cf57600080fd5b505af11580156105e3573d6000803e3d6000fd5b505050506040513d60208110156105f957600080fd5b810190808051906020019092919050505015156106a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff1614151515610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f496e76616c696420746f20616464726573732070726f7669646564000000000081525060200191505060405180910390fd5b6000821115156107ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f496e76616c696420616d6f756e742070726f766964656400000000000000000081525060200191505060405180910390fd5b6107b584836111c0565b1515610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4461696c79206c696d697420686173206265656e20726561636865640000000081525060200191505060405180910390fd5b81600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000828254019250508190555060008473ffffffffffffffffffffffffffffffffffffffff161415610a3c57600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7848460006040518463ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018060200183600281111561095157fe5b60ff168152602001828103825260008152602001602001945050505050602060405180830381600087803b15801561098857600080fd5b505af115801561099c573d6000803e3d6000fd5b505050506040513d60208110156109b257600080fd5b81019080805190602001909291905050501515610a37576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f742065786563757465206574686572207472616e7366657281525060200191505060405180910390fd5b610cfa565b8282604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a78560008460006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610bbb57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610bfb578082015181840152602081019050610be0565b50505050905090810190601f168015610c285780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610c4a57600080fd5b505af1158015610c5e573d6000803e3d6000fd5b505050506040513d6020811015610c7457600080fd5b81019080805190602001909291905050501515610cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f436f756c64206e6f74206578656375746520746f6b656e207472616e7366657281525060200191505060405180910390fd5b5b50505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610deb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ea0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055505050565b6040805190810160405280601281526020017f4461696c79204c696d6974204d6f64756c65000000000000000000000000000081525081565b6000620151804281151561106257fe5b064203905090565b60026020528060005260406000206000915090508060000154908060010154908060020154905083565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561117d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002090508060020154611211611052565b11156112325761121f611052565b8160020181905550600081600101819055505b806000015483826001015401111580156112555750806001015483826001015401115b156112635760019150611268565b600091505b50929150505600a165627a7a72305820829e0119c133a410205606912728b71003dbd7359410bad5c3588c1681dc2d3d0029", + "sourceMap": "296:3283:18:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;296:3283:18;;;;;;;", + "deployedSourceMap": "296:3283:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;918:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;918:222:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;1890:987:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1890:987:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1368:158:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1368:158:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;339:50: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;339:50:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3461:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3461:116:18;;;;;;;;;;;;;;;;;;;;;;;513:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;513:50:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;395:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;395: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;395:40:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:987:18:-;2647:17;2087:7;;;;;;;;;;;2074:29;;;2104:10;2074:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2074:41:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2074:41:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2074:41:18;;;;;;;;;;;;;;;;2066:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2181:1;2175:2;:7;;;;2167:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2241:1;2232:6;:10;2224:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2352:27;2365:5;2372:6;2352:12;:27::i;:::-;2344:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2455:6;2422:11;:18;2434:5;2422:18;;;;;;;;;;;;;;;:29;;;:39;;;;;;;;;;;2484:1;2475:5;:10;;;2471:400;;;2509:7;;;;;;;;;;;:33;;;2543:2;2547:6;2559:19;2509:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2509:70:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2509:70:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2509:70:18;;;;;;;;;;;;;;;;2501:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:400;;;2720:2;2724:6;2667:64;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2667:64: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;;;2667:64:18;2647:84;;2753:7;;;;;;;;;;;:33;;;2787:5;2794:1;2797:4;2803:19;2753: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;2753:70:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2753:70:18;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2753:70:18;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2753:70:18;;;;;;;;;;;;;;;;2745:115;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2471:400;1890:987;;;;:::o;626:248:5:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;1368:158:18:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1509:10:18;1477:11;:18;1489:5;1477:18;;;;;;;;;;;;;;;:29;;:42;;;;1368:158;;:::o;339:50::-;;;;;;;;;;;;;;;;;;;;:::o;3461:116::-;3523:4;3563:6;3557:3;:12;;;;;;;;3550:3;:20;3543:27;;3461:116;:::o;513:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;395:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:7:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o;2883:486:18:-;2970:4;2990:29;3022:11;:18;3034:5;3022:18;;;;;;;;;;;;;;;2990:50;;3064:10;:18;;;3054:7;:5;:7::i;:::-;:28;3050:126;;;3119:7;:5;:7::i;:::-;3098:10;:18;;:28;;;;3164:1;3140:10;:21;;:25;;;;3050:126;3223:10;:21;;;3213:6;3189:10;:21;;;:30;:55;;:126;;;;;3294:10;:21;;;3285:6;3261:10;:21;;;:30;:54;3189:126;3185:155;;;3336:4;3329:11;;;;3185:155;3357:5;3350:12;;2883:486;;;;;;:::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), \"Method can only be called by an owner\");\n require(to != 0, \"Invalid to address provided\");\n require(amount > 0, \"Invalid amount provided\");\n // Validate that transfer is not exceeding daily limit.\n require(isUnderLimit(token, amount), \"Daily limit has been reached\");\n dailyLimits[token].spentToday += amount;\n if (token == 0) {\n require(manager.execTransactionFromModule(to, amount, \"\", Enum.Operation.Call), \"Could not execute ether transfer\");\n } else {\n bytes memory data = abi.encodeWithSignature(\"transfer(address,uint256)\", to, amount);\n require(manager.execTransactionFromModule(token, 0, data, Enum.Operation.Call), \"Could not execute token transfer\");\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": [ - 2079 + 2038 ] }, - "id": 2080, + "id": 2039, "nodeType": "SourceUnit", "nodes": [ { - "id": 1842, + "id": 1801, "literals": [ "solidity", "0.4", @@ -186,9 +186,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 1843, + "id": 1802, "nodeType": "ImportDirective", - "scope": 2080, + "scope": 2039, "sourceUnit": 733, "src": "24:23:18", "symbolAliases": [], @@ -197,9 +197,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 1844, + "id": 1803, "nodeType": "ImportDirective", - "scope": 2080, + "scope": 2039, "sourceUnit": 1104, "src": "48:30:18", "symbolAliases": [], @@ -208,10 +208,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 1845, + "id": 1804, "nodeType": "ImportDirective", - "scope": 2080, - "sourceUnit": 1514, + "scope": 2039, + "sourceUnit": 1512, "src": "79:29:18", "symbolAliases": [], "unitAlias": "" @@ -219,9 +219,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 1846, + "id": 1805, "nodeType": "ImportDirective", - "scope": 2080, + "scope": 2039, "sourceUnit": 31, "src": "109:21:18", "symbolAliases": [], @@ -233,7 +233,7 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1847, + "id": 1806, "name": "Module", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 732, @@ -243,7 +243,7 @@ "typeString": "contract Module" } }, - "id": 1848, + "id": 1807, "nodeType": "InheritanceSpecifier", "src": "325:6:18" } @@ -251,27 +251,27 @@ "contractDependencies": [ 632, 732, - 1663 + 1688 ], "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": 2079, + "id": 2038, "linearizedBaseContracts": [ - 2079, + 2038, 732, 632, - 1663 + 1688 ], "name": "DailyLimitModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 1851, + "id": 1810, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2079, + "scope": 2038, "src": "339:50:18", "stateVariable": true, "storageLocation": "default", @@ -280,7 +280,7 @@ "typeString": "string" }, "typeName": { - "id": 1849, + "id": 1808, "name": "string", "nodeType": "ElementaryTypeName", "src": "339:6:18", @@ -292,7 +292,7 @@ "value": { "argumentTypes": null, "hexValue": "4461696c79204c696d6974204d6f64756c65", - "id": 1850, + "id": 1809, "isConstant": false, "isLValue": false, "isPure": true, @@ -311,10 +311,10 @@ }, { "constant": true, - "id": 1854, + "id": 1813, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2079, + "scope": 2038, "src": "395:40:18", "stateVariable": true, "storageLocation": "default", @@ -323,7 +323,7 @@ "typeString": "string" }, "typeName": { - "id": 1852, + "id": 1811, "name": "string", "nodeType": "ElementaryTypeName", "src": "395:6:18", @@ -335,7 +335,7 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 1853, + "id": 1812, "isConstant": false, "isLValue": false, "isPure": true, @@ -354,21 +354,21 @@ }, { "constant": false, - "id": 1858, + "id": 1817, "name": "dailyLimits", "nodeType": "VariableDeclaration", - "scope": 2079, + "scope": 2038, "src": "513:50:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1865_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1824_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "typeName": { - "id": 1857, + "id": 1816, "keyType": { - "id": 1855, + "id": 1814, "name": "address", "nodeType": "ElementaryTypeName", "src": "522:7:18", @@ -380,18 +380,18 @@ "nodeType": "Mapping", "src": "513:31:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1865_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1824_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "valueType": { "contractScope": null, - "id": 1856, + "id": 1815, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1865, + "referencedDeclaration": 1824, "src": "533:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } } @@ -401,14 +401,14 @@ }, { "canonicalName": "DailyLimitModule.DailyLimit", - "id": 1865, + "id": 1824, "members": [ { "constant": false, - "id": 1860, + "id": 1819, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1865, + "scope": 1824, "src": "598:18:18", "stateVariable": false, "storageLocation": "default", @@ -417,7 +417,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1859, + "id": 1818, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "598:7:18", @@ -431,10 +431,10 @@ }, { "constant": false, - "id": 1862, + "id": 1821, "name": "spentToday", "nodeType": "VariableDeclaration", - "scope": 1865, + "scope": 1824, "src": "626:18:18", "stateVariable": false, "storageLocation": "default", @@ -443,7 +443,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1861, + "id": 1820, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "626:7:18", @@ -457,10 +457,10 @@ }, { "constant": false, - "id": 1864, + "id": 1823, "name": "lastDay", "nodeType": "VariableDeclaration", - "scope": 1865, + "scope": 1824, "src": "654:15:18", "stateVariable": false, "storageLocation": "default", @@ -469,7 +469,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1863, + "id": 1822, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "654:7:18", @@ -484,13 +484,13 @@ ], "name": "DailyLimit", "nodeType": "StructDefinition", - "scope": 2079, + "scope": 2038, "src": "570:106:18", "visibility": "public" }, { "body": { - "id": 1900, + "id": 1859, "nodeType": "Block", "src": "994:146:18", "statements": [ @@ -500,7 +500,7 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1874, + "id": 1833, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -511,7 +511,7 @@ "typeString": "function ()" } }, - "id": 1875, + "id": 1834, "isConstant": false, "isLValue": false, "isPure": false, @@ -525,7 +525,7 @@ "typeString": "tuple()" } }, - "id": 1876, + "id": 1835, "nodeType": "ExpressionStatement", "src": "1004:12:18" }, @@ -533,7 +533,7 @@ "body": { "expression": { "argumentTypes": null, - "id": 1897, + "id": 1856, "isConstant": false, "isLValue": false, "isPure": false, @@ -544,41 +544,41 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1888, + "id": 1847, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, + "referencedDeclaration": 1817, "src": "1082:11:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1865_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1824_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1892, + "id": 1851, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1889, + "id": 1848, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1868, + "referencedDeclaration": 1827, "src": "1094:6:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1891, + "id": 1850, "indexExpression": { "argumentTypes": null, - "id": 1890, + "id": 1849, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1878, + "referencedDeclaration": 1837, "src": "1101:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -603,18 +603,18 @@ "nodeType": "IndexAccess", "src": "1082:22:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1893, + "id": 1852, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1860, + "referencedDeclaration": 1819, "src": "1082:33:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -627,25 +627,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1894, + "id": 1853, "name": "_dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1871, + "referencedDeclaration": 1830, "src": "1118:12:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1896, + "id": 1855, "indexExpression": { "argumentTypes": null, - "id": 1895, + "id": 1854, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1878, + "referencedDeclaration": 1837, "src": "1131:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -669,7 +669,7 @@ "typeString": "uint256" } }, - "id": 1898, + "id": 1857, "nodeType": "ExpressionStatement", "src": "1082:51:18" }, @@ -679,18 +679,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1884, + "id": 1843, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1881, + "id": 1840, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1878, + "referencedDeclaration": 1837, "src": "1046:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -703,18 +703,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1882, + "id": 1841, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1868, + "referencedDeclaration": 1827, "src": "1050:6:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1883, + "id": 1842, "isConstant": false, "isLValue": false, "isPure": false, @@ -734,18 +734,18 @@ "typeString": "bool" } }, - "id": 1899, + "id": 1858, "initializationExpression": { "assignments": [ - 1878 + 1837 ], "declarations": [ { "constant": false, - "id": 1878, + "id": 1837, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1901, + "scope": 1860, "src": "1031:9:18", "stateVariable": false, "storageLocation": "default", @@ -754,7 +754,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1877, + "id": 1836, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1031:7:18", @@ -767,11 +767,11 @@ "visibility": "internal" } ], - "id": 1880, + "id": 1839, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1879, + "id": 1838, "isConstant": false, "isLValue": false, "isPure": true, @@ -792,7 +792,7 @@ "loopExpression": { "expression": { "argumentTypes": null, - "id": 1886, + "id": 1845, "isConstant": false, "isLValue": false, "isPure": false, @@ -803,11 +803,11 @@ "src": "1065:3:18", "subExpression": { "argumentTypes": null, - "id": 1885, + "id": 1844, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1878, + "referencedDeclaration": 1837, "src": "1065:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -819,7 +819,7 @@ "typeString": "uint256" } }, - "id": 1887, + "id": 1846, "nodeType": "ExpressionStatement", "src": "1065:3:18" }, @@ -829,7 +829,7 @@ ] }, "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": 1901, + "id": 1860, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -837,15 +837,15 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 1872, + "id": 1831, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1868, + "id": 1827, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 1901, + "scope": 1860, "src": "933:16:18", "stateVariable": false, "storageLocation": "default", @@ -855,7 +855,7 @@ }, "typeName": { "baseType": { - "id": 1866, + "id": 1825, "name": "address", "nodeType": "ElementaryTypeName", "src": "933:7:18", @@ -864,7 +864,7 @@ "typeString": "address" } }, - "id": 1867, + "id": 1826, "length": null, "nodeType": "ArrayTypeName", "src": "933:9:18", @@ -878,10 +878,10 @@ }, { "constant": false, - "id": 1871, + "id": 1830, "name": "_dailyLimits", "nodeType": "VariableDeclaration", - "scope": 1901, + "scope": 1860, "src": "951:22:18", "stateVariable": false, "storageLocation": "default", @@ -891,7 +891,7 @@ }, "typeName": { "baseType": { - "id": 1869, + "id": 1828, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "951:7:18", @@ -900,7 +900,7 @@ "typeString": "uint256" } }, - "id": 1870, + "id": 1829, "length": null, "nodeType": "ArrayTypeName", "src": "951:9:18", @@ -917,12 +917,12 @@ }, "payable": false, "returnParameters": { - "id": 1873, + "id": 1832, "nodeType": "ParameterList", "parameters": [], "src": "994:0:18" }, - "scope": 2079, + "scope": 2038, "src": "918:222:18", "stateMutability": "nonpayable", "superFunction": null, @@ -930,14 +930,14 @@ }, { "body": { - "id": 1917, + "id": 1876, "nodeType": "Block", "src": "1467:59:18", "statements": [ { "expression": { "argumentTypes": null, - "id": 1915, + "id": 1874, "isConstant": false, "isLValue": false, "isPure": false, @@ -948,25 +948,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1910, + "id": 1869, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, + "referencedDeclaration": 1817, "src": "1477:11:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1865_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1824_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1912, + "id": 1871, "indexExpression": { "argumentTypes": null, - "id": 1911, + "id": 1870, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1903, + "referencedDeclaration": 1862, "src": "1489:5:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -980,18 +980,18 @@ "nodeType": "IndexAccess", "src": "1477:18:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1913, + "id": 1872, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1860, + "referencedDeclaration": 1819, "src": "1477:29:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1002,11 +1002,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1914, + "id": 1873, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1905, + "referencedDeclaration": 1864, "src": "1509:10:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1019,24 +1019,24 @@ "typeString": "uint256" } }, - "id": 1916, + "id": 1875, "nodeType": "ExpressionStatement", "src": "1477:42:18" } ] }, "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": 1918, + "id": 1877, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1908, + "id": 1867, "modifierName": { "argumentTypes": null, - "id": 1907, + "id": 1866, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1054,15 +1054,15 @@ "name": "changeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1906, + "id": 1865, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1903, + "id": 1862, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1918, + "scope": 1877, "src": "1394:13:18", "stateVariable": false, "storageLocation": "default", @@ -1071,7 +1071,7 @@ "typeString": "address" }, "typeName": { - "id": 1902, + "id": 1861, "name": "address", "nodeType": "ElementaryTypeName", "src": "1394:7:18", @@ -1085,10 +1085,10 @@ }, { "constant": false, - "id": 1905, + "id": 1864, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1918, + "scope": 1877, "src": "1409:18:18", "stateVariable": false, "storageLocation": "default", @@ -1097,7 +1097,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1904, + "id": 1863, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1409:7:18", @@ -1114,12 +1114,12 @@ }, "payable": false, "returnParameters": { - "id": 1909, + "id": 1868, "nodeType": "ParameterList", "parameters": [], "src": "1467:0:18" }, - "scope": 2079, + "scope": 2038, "src": "1368:158:18", "stateMutability": "nonpayable", "superFunction": null, @@ -1127,7 +1127,7 @@ }, { "body": { - "id": 2008, + "id": 1967, "nodeType": "Block", "src": "1979:898:18", "statements": [ @@ -1142,18 +1142,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1932, + "id": 1891, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2700, + "referencedDeclaration": 2659, "src": "2104:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1933, + "id": 1892, "isConstant": false, "isLValue": false, "isPure": false, @@ -1180,7 +1180,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1929, + "id": 1888, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1199,18 +1199,18 @@ "typeString": "contract ModuleManager" } ], - "id": 1928, + "id": 1887, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1513, + "referencedDeclaration": 1511, "src": "2074:12:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1513_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1511_$", "typeString": "type(contract OwnerManager)" } }, - "id": 1930, + "id": 1889, "isConstant": false, "isLValue": false, "isPure": false, @@ -1220,25 +1220,25 @@ "nodeType": "FunctionCall", "src": "2074:21:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1513", + "typeIdentifier": "t_contract$_OwnerManager_$1511", "typeString": "contract OwnerManager" } }, - "id": 1931, + "id": 1890, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1463, + "referencedDeclaration": 1461, "src": "2074:29:18", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 1934, + "id": 1893, "isConstant": false, "isLValue": false, "isPure": false, @@ -1255,7 +1255,7 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 1935, + "id": 1894, "isConstant": false, "isLValue": false, "isPure": true, @@ -1282,21 +1282,21 @@ "typeString": "literal_string \"Method can only be called by an owner\"" } ], - "id": 1927, + "id": 1886, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2066:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1936, + "id": 1895, "isConstant": false, "isLValue": false, "isPure": false, @@ -1310,7 +1310,7 @@ "typeString": "tuple()" } }, - "id": 1937, + "id": 1896, "nodeType": "ExpressionStatement", "src": "2066:91:18" }, @@ -1324,18 +1324,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1941, + "id": 1900, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1939, + "id": 1898, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1922, + "referencedDeclaration": 1881, "src": "2175:2:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1347,7 +1347,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1940, + "id": 1899, "isConstant": false, "isLValue": false, "isPure": true, @@ -1371,7 +1371,7 @@ { "argumentTypes": null, "hexValue": "496e76616c696420746f20616464726573732070726f7669646564", - "id": 1942, + "id": 1901, "isConstant": false, "isLValue": false, "isPure": true, @@ -1398,21 +1398,21 @@ "typeString": "literal_string \"Invalid to address provided\"" } ], - "id": 1938, + "id": 1897, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2167:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1943, + "id": 1902, "isConstant": false, "isLValue": false, "isPure": false, @@ -1426,7 +1426,7 @@ "typeString": "tuple()" } }, - "id": 1944, + "id": 1903, "nodeType": "ExpressionStatement", "src": "2167:47:18" }, @@ -1440,18 +1440,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1948, + "id": 1907, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1946, + "id": 1905, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1924, + "referencedDeclaration": 1883, "src": "2232:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1463,7 +1463,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1947, + "id": 1906, "isConstant": false, "isLValue": false, "isPure": true, @@ -1487,7 +1487,7 @@ { "argumentTypes": null, "hexValue": "496e76616c696420616d6f756e742070726f7669646564", - "id": 1949, + "id": 1908, "isConstant": false, "isLValue": false, "isPure": true, @@ -1514,21 +1514,21 @@ "typeString": "literal_string \"Invalid amount provided\"" } ], - "id": 1945, + "id": 1904, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2224:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1950, + "id": 1909, "isConstant": false, "isLValue": false, "isPure": false, @@ -1542,7 +1542,7 @@ "typeString": "tuple()" } }, - "id": 1951, + "id": 1910, "nodeType": "ExpressionStatement", "src": "2224:46:18" }, @@ -1555,11 +1555,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1954, + "id": 1913, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1920, + "referencedDeclaration": 1879, "src": "2365:5:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1568,11 +1568,11 @@ }, { "argumentTypes": null, - "id": 1955, + "id": 1914, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1924, + "referencedDeclaration": 1883, "src": "2372:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1591,18 +1591,18 @@ "typeString": "uint256" } ], - "id": 1953, + "id": 1912, "name": "isUnderLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2065, + "referencedDeclaration": 2024, "src": "2352:12:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) returns (bool)" } }, - "id": 1956, + "id": 1915, "isConstant": false, "isLValue": false, "isPure": false, @@ -1619,7 +1619,7 @@ { "argumentTypes": null, "hexValue": "4461696c79206c696d697420686173206265656e2072656163686564", - "id": 1957, + "id": 1916, "isConstant": false, "isLValue": false, "isPure": true, @@ -1646,21 +1646,21 @@ "typeString": "literal_string \"Daily limit has been reached\"" } ], - "id": 1952, + "id": 1911, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2344:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1958, + "id": 1917, "isConstant": false, "isLValue": false, "isPure": false, @@ -1674,14 +1674,14 @@ "typeString": "tuple()" } }, - "id": 1959, + "id": 1918, "nodeType": "ExpressionStatement", "src": "2344:68:18" }, { "expression": { "argumentTypes": null, - "id": 1965, + "id": 1924, "isConstant": false, "isLValue": false, "isPure": false, @@ -1692,25 +1692,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1960, + "id": 1919, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, + "referencedDeclaration": 1817, "src": "2422:11:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1865_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1824_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1962, + "id": 1921, "indexExpression": { "argumentTypes": null, - "id": 1961, + "id": 1920, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1920, + "referencedDeclaration": 1879, "src": "2434:5:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1724,18 +1724,18 @@ "nodeType": "IndexAccess", "src": "2422:18:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1963, + "id": 1922, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1862, + "referencedDeclaration": 1821, "src": "2422:29:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1746,11 +1746,11 @@ "operator": "+=", "rightHandSide": { "argumentTypes": null, - "id": 1964, + "id": 1923, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1924, + "referencedDeclaration": 1883, "src": "2455:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1763,7 +1763,7 @@ "typeString": "uint256" } }, - "id": 1966, + "id": 1925, "nodeType": "ExpressionStatement", "src": "2422:39:18" }, @@ -1774,18 +1774,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1969, + "id": 1928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1967, + "id": 1926, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1920, + "referencedDeclaration": 1879, "src": "2475:5:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1797,7 +1797,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1968, + "id": 1927, "isConstant": false, "isLValue": false, "isPure": true, @@ -1819,21 +1819,21 @@ } }, "falseBody": { - "id": 2006, + "id": 1965, "nodeType": "Block", "src": "2633:238:18", "statements": [ { "assignments": [ - 1985 + 1944 ], "declarations": [ { "constant": false, - "id": 1985, + "id": 1944, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2009, + "scope": 1968, "src": "2647:17:18", "stateVariable": false, "storageLocation": "memory", @@ -1842,7 +1842,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1984, + "id": 1943, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2647:5:18", @@ -1855,14 +1855,14 @@ "visibility": "internal" } ], - "id": 1992, + "id": 1951, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 1988, + "id": 1947, "isConstant": false, "isLValue": false, "isPure": true, @@ -1879,11 +1879,11 @@ }, { "argumentTypes": null, - "id": 1989, + "id": 1948, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1922, + "referencedDeclaration": 1881, "src": "2720:2:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1892,11 +1892,11 @@ }, { "argumentTypes": null, - "id": 1990, + "id": 1949, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1924, + "referencedDeclaration": 1883, "src": "2724:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1921,18 +1921,18 @@ ], "expression": { "argumentTypes": null, - "id": 1986, + "id": 1945, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2687, + "referencedDeclaration": 2646, "src": "2667:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 1987, + "id": 1946, "isConstant": false, "isLValue": false, "isPure": true, @@ -1946,7 +1946,7 @@ "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 1991, + "id": 1950, "isConstant": false, "isLValue": false, "isPure": false, @@ -1972,11 +1972,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1996, + "id": 1955, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1920, + "referencedDeclaration": 1879, "src": "2787:5:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1986,7 +1986,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1997, + "id": 1956, "isConstant": false, "isLValue": false, "isPure": true, @@ -2003,11 +2003,11 @@ }, { "argumentTypes": null, - "id": 1998, + "id": 1957, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, + "referencedDeclaration": 1944, "src": "2797:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -2020,7 +2020,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1999, + "id": 1958, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -2031,7 +2031,7 @@ "typeString": "type(contract Enum)" } }, - "id": 2000, + "id": 1959, "isConstant": false, "isLValue": false, "isPure": false, @@ -2045,7 +2045,7 @@ "typeString": "type(enum Enum.Operation)" } }, - "id": 2001, + "id": 1960, "isConstant": false, "isLValue": false, "isPure": true, @@ -2081,7 +2081,7 @@ ], "expression": { "argumentTypes": null, - "id": 1994, + "id": 1953, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -2092,7 +2092,7 @@ "typeString": "contract ModuleManager" } }, - "id": 1995, + "id": 1954, "isConstant": false, "isLValue": false, "isPure": false, @@ -2106,7 +2106,7 @@ "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2002, + "id": 1961, "isConstant": false, "isLValue": false, "isPure": false, @@ -2123,7 +2123,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74206578656375746520746f6b656e207472616e73666572", - "id": 2003, + "id": 1962, "isConstant": false, "isLValue": false, "isPure": true, @@ -2150,21 +2150,21 @@ "typeString": "literal_string \"Could not execute token transfer\"" } ], - "id": 1993, + "id": 1952, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2745:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2004, + "id": 1963, "isConstant": false, "isLValue": false, "isPure": false, @@ -2178,17 +2178,17 @@ "typeString": "tuple()" } }, - "id": 2005, + "id": 1964, "nodeType": "ExpressionStatement", "src": "2745:115:18" } ] }, - "id": 2007, + "id": 1966, "nodeType": "IfStatement", "src": "2471:400:18", "trueBody": { - "id": 1983, + "id": 1942, "nodeType": "Block", "src": "2487:140:18", "statements": [ @@ -2201,11 +2201,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1973, + "id": 1932, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1922, + "referencedDeclaration": 1881, "src": "2543:2:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2214,11 +2214,11 @@ }, { "argumentTypes": null, - "id": 1974, + "id": 1933, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1924, + "referencedDeclaration": 1883, "src": "2547:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2228,7 +2228,7 @@ { "argumentTypes": null, "hexValue": "", - "id": 1975, + "id": 1934, "isConstant": false, "isLValue": false, "isPure": true, @@ -2249,7 +2249,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1976, + "id": 1935, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -2260,7 +2260,7 @@ "typeString": "type(contract Enum)" } }, - "id": 1977, + "id": 1936, "isConstant": false, "isLValue": false, "isPure": false, @@ -2274,7 +2274,7 @@ "typeString": "type(enum Enum.Operation)" } }, - "id": 1978, + "id": 1937, "isConstant": false, "isLValue": false, "isPure": true, @@ -2310,7 +2310,7 @@ ], "expression": { "argumentTypes": null, - "id": 1971, + "id": 1930, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -2321,7 +2321,7 @@ "typeString": "contract ModuleManager" } }, - "id": 1972, + "id": 1931, "isConstant": false, "isLValue": false, "isPure": false, @@ -2335,7 +2335,7 @@ "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 1979, + "id": 1938, "isConstant": false, "isLValue": false, "isPure": false, @@ -2352,7 +2352,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465206574686572207472616e73666572", - "id": 1980, + "id": 1939, "isConstant": false, "isLValue": false, "isPure": true, @@ -2379,21 +2379,21 @@ "typeString": "literal_string \"Could not execute ether transfer\"" } ], - "id": 1970, + "id": 1929, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2501:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1981, + "id": 1940, "isConstant": false, "isLValue": false, "isPure": false, @@ -2407,7 +2407,7 @@ "typeString": "tuple()" } }, - "id": 1982, + "id": 1941, "nodeType": "ExpressionStatement", "src": "2501:115:18" } @@ -2417,7 +2417,7 @@ ] }, "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": 2009, + "id": 1968, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2425,15 +2425,15 @@ "name": "executeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1925, + "id": 1884, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1920, + "id": 1879, "name": "token", "nodeType": "VariableDeclaration", - "scope": 2009, + "scope": 1968, "src": "1917:13:18", "stateVariable": false, "storageLocation": "default", @@ -2442,7 +2442,7 @@ "typeString": "address" }, "typeName": { - "id": 1919, + "id": 1878, "name": "address", "nodeType": "ElementaryTypeName", "src": "1917:7:18", @@ -2456,10 +2456,10 @@ }, { "constant": false, - "id": 1922, + "id": 1881, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2009, + "scope": 1968, "src": "1932:10:18", "stateVariable": false, "storageLocation": "default", @@ -2468,7 +2468,7 @@ "typeString": "address" }, "typeName": { - "id": 1921, + "id": 1880, "name": "address", "nodeType": "ElementaryTypeName", "src": "1932:7:18", @@ -2482,10 +2482,10 @@ }, { "constant": false, - "id": 1924, + "id": 1883, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2009, + "scope": 1968, "src": "1944:14:18", "stateVariable": false, "storageLocation": "default", @@ -2494,7 +2494,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1923, + "id": 1882, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1944:7:18", @@ -2511,12 +2511,12 @@ }, "payable": false, "returnParameters": { - "id": 1926, + "id": 1885, "nodeType": "ParameterList", "parameters": [], "src": "1979:0:18" }, - "scope": 2079, + "scope": 2038, "src": "1890:987:18", "stateMutability": "nonpayable", "superFunction": null, @@ -2524,37 +2524,37 @@ }, { "body": { - "id": 2064, + "id": 2023, "nodeType": "Block", - "src": "2980:391:18", + "src": "2980:389:18", "statements": [ { "assignments": [ - 2019 + 1978 ], "declarations": [ { "constant": false, - "id": 2019, + "id": 1978, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 2065, + "scope": 2024, "src": "2990:29:18", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" }, "typeName": { "contractScope": null, - "id": 2018, + "id": 1977, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1865, + "referencedDeclaration": 1824, "src": "2990:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } }, @@ -2562,30 +2562,30 @@ "visibility": "internal" } ], - "id": 2023, + "id": 1982, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2020, + "id": 1979, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, + "referencedDeclaration": 1817, "src": "3022:11:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1865_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1824_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 2022, + "id": 1981, "indexExpression": { "argumentTypes": null, - "id": 2021, + "id": 1980, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2011, + "referencedDeclaration": 1970, "src": "3034:5:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2599,7 +2599,7 @@ "nodeType": "IndexAccess", "src": "3022:18:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, @@ -2613,7 +2613,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2028, + "id": 1987, "isConstant": false, "isLValue": false, "isPure": false, @@ -2623,18 +2623,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2024, + "id": 1983, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2078, + "referencedDeclaration": 2037, "src": "3054:5:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 2025, + "id": 1984, "isConstant": false, "isLValue": false, "isPure": false, @@ -2654,25 +2654,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2026, + "id": 1985, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, + "referencedDeclaration": 1978, "src": "3064:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2027, + "id": 1986, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 1864, + "referencedDeclaration": 1823, "src": "3064:18:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2686,18 +2686,18 @@ } }, "falseBody": null, - "id": 2043, + "id": 2002, "nodeType": "IfStatement", "src": "3050:126:18", "trueBody": { - "id": 2042, + "id": 2001, "nodeType": "Block", "src": "3084:92:18", "statements": [ { "expression": { "argumentTypes": null, - "id": 2034, + "id": 1993, "isConstant": false, "isLValue": false, "isPure": false, @@ -2706,25 +2706,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2029, + "id": 1988, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, + "referencedDeclaration": 1978, "src": "3098:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2031, + "id": 1990, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 1864, + "referencedDeclaration": 1823, "src": "3098:18:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2738,18 +2738,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2032, + "id": 1991, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2078, + "referencedDeclaration": 2037, "src": "3119:5:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 2033, + "id": 1992, "isConstant": false, "isLValue": false, "isPure": false, @@ -2769,14 +2769,14 @@ "typeString": "uint256" } }, - "id": 2035, + "id": 1994, "nodeType": "ExpressionStatement", "src": "3098:28:18" }, { "expression": { "argumentTypes": null, - "id": 2040, + "id": 1999, "isConstant": false, "isLValue": false, "isPure": false, @@ -2785,25 +2785,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2036, + "id": 1995, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, + "referencedDeclaration": 1978, "src": "3140:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2038, + "id": 1997, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1862, + "referencedDeclaration": 1821, "src": "3140:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2815,7 +2815,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2039, + "id": 1998, "isConstant": false, "isLValue": false, "isPure": true, @@ -2836,7 +2836,7 @@ "typeString": "uint256" } }, - "id": 2041, + "id": 2000, "nodeType": "ExpressionStatement", "src": "3140:25:18" } @@ -2850,7 +2850,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2058, + "id": 2017, "isConstant": false, "isLValue": false, "isPure": false, @@ -2861,7 +2861,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2050, + "id": 2009, "isConstant": false, "isLValue": false, "isPure": false, @@ -2872,7 +2872,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2047, + "id": 2006, "isConstant": false, "isLValue": false, "isPure": false, @@ -2881,26 +2881,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2044, + "id": 2003, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, - "src": "3192:10:18", + "referencedDeclaration": 1978, + "src": "3189:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2045, + "id": 2004, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1862, - "src": "3192:21:18", + "referencedDeclaration": 1821, + "src": "3189:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2910,18 +2910,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2046, + "id": 2005, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2013, - "src": "3216:6:18", + "referencedDeclaration": 1972, + "src": "3213:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3192:30:18", + "src": "3189:30:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2933,32 +2933,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2048, + "id": 2007, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, - "src": "3226:10:18", + "referencedDeclaration": 1978, + "src": "3223:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2049, + "id": 2008, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1860, - "src": "3226:21:18", + "referencedDeclaration": 1819, + "src": "3223:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3192:55:18", + "src": "3189:55:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2972,7 +2972,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2057, + "id": 2016, "isConstant": false, "isLValue": false, "isPure": false, @@ -2983,7 +2983,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2054, + "id": 2013, "isConstant": false, "isLValue": false, "isPure": false, @@ -2992,26 +2992,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2051, + "id": 2010, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, - "src": "3263:10:18", + "referencedDeclaration": 1978, + "src": "3261:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2052, + "id": 2011, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1862, - "src": "3263:21:18", + "referencedDeclaration": 1821, + "src": "3261:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3021,18 +3021,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2053, + "id": 2012, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2013, - "src": "3287:6:18", + "referencedDeclaration": 1972, + "src": "3285:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3263:30:18", + "src": "3261:30:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3044,59 +3044,59 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2055, + "id": 2014, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, - "src": "3296:10:18", + "referencedDeclaration": 1978, + "src": "3294:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2056, + "id": 2015, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1862, - "src": "3296:21:18", + "referencedDeclaration": 1821, + "src": "3294:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3263:54:18", + "src": "3261:54:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3192:125:18", + "src": "3189:126:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2061, + "id": 2020, "nodeType": "IfStatement", - "src": "3185:157:18", + "src": "3185:155:18", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2059, + "id": 2018, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3338:4:18", + "src": "3336:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3104,24 +3104,24 @@ }, "value": "true" }, - "functionReturnParameters": 2017, - "id": 2060, + "functionReturnParameters": 1976, + "id": 2019, "nodeType": "Return", - "src": "3331:11:18" + "src": "3329:11:18" } }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2062, + "id": 2021, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3359:5:18", + "src": "3357:5:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3129,15 +3129,15 @@ }, "value": "false" }, - "functionReturnParameters": 2017, - "id": 2063, + "functionReturnParameters": 1976, + "id": 2022, "nodeType": "Return", - "src": "3352:12:18" + "src": "3350:12:18" } ] }, "documentation": null, - "id": 2065, + "id": 2024, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3145,15 +3145,15 @@ "name": "isUnderLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 2014, + "id": 1973, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2011, + "id": 1970, "name": "token", "nodeType": "VariableDeclaration", - "scope": 2065, + "scope": 2024, "src": "2905:13:18", "stateVariable": false, "storageLocation": "default", @@ -3162,7 +3162,7 @@ "typeString": "address" }, "typeName": { - "id": 2010, + "id": 1969, "name": "address", "nodeType": "ElementaryTypeName", "src": "2905:7:18", @@ -3176,10 +3176,10 @@ }, { "constant": false, - "id": 2013, + "id": 1972, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2065, + "scope": 2024, "src": "2920:14:18", "stateVariable": false, "storageLocation": "default", @@ -3188,7 +3188,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2012, + "id": 1971, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2920:7:18", @@ -3205,15 +3205,15 @@ }, "payable": false, "returnParameters": { - "id": 2017, + "id": 1976, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2016, + "id": 1975, "name": "", "nodeType": "VariableDeclaration", - "scope": 2065, + "scope": 2024, "src": "2970:4:18", "stateVariable": false, "storageLocation": "default", @@ -3222,7 +3222,7 @@ "typeString": "bool" }, "typeName": { - "id": 2015, + "id": 1974, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2970:4:18", @@ -3237,17 +3237,17 @@ ], "src": "2969:6:18" }, - "scope": 2079, - "src": "2883:488:18", + "scope": 2038, + "src": "2883:486:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2077, + "id": 2036, "nodeType": "Block", - "src": "3535:44:18", + "src": "3533:44:18", "statements": [ { "expression": { @@ -3256,19 +3256,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2075, + "id": 2034, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2070, + "id": 2029, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "3552:3:18", + "referencedDeclaration": 2661, + "src": "3550:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3285,19 +3285,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2073, + "id": 2032, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2071, + "id": 2030, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "3559:3:18", + "referencedDeclaration": 2661, + "src": "3557:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3308,14 +3308,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2072, + "id": 2031, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3565:6:18", + "src": "3563:6:18", "subdenomination": "days", "typeDescriptions": { "typeIdentifier": "t_rational_86400_by_1", @@ -3323,41 +3323,41 @@ }, "value": "1" }, - "src": "3559:12:18", + "src": "3557:12:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2074, + "id": 2033, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3558:14:18", + "src": "3556:14:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3552:20:18", + "src": "3550:20:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2069, - "id": 2076, + "functionReturnParameters": 2028, + "id": 2035, "nodeType": "Return", - "src": "3545:27:18" + "src": "3543:27:18" } ] }, "documentation": "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp.", - "id": 2078, + "id": 2037, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3365,23 +3365,23 @@ "name": "today", "nodeType": "FunctionDefinition", "parameters": { - "id": 2066, + "id": 2025, "nodeType": "ParameterList", "parameters": [], - "src": "3477:2:18" + "src": "3475:2:18" }, "payable": false, "returnParameters": { - "id": 2069, + "id": 2028, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2068, + "id": 2027, "name": "", "nodeType": "VariableDeclaration", - "scope": 2078, - "src": "3525:4:18", + "scope": 2037, + "src": "3523:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3389,10 +3389,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2067, + "id": 2026, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3525:4:18", + "src": "3523:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3402,33 +3402,33 @@ "visibility": "internal" } ], - "src": "3524:6:18" + "src": "3522:6:18" }, - "scope": 2079, - "src": "3463:116:18", + "scope": 2038, + "src": "3461:116:18", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 2080, - "src": "296:3285:18" + "scope": 2039, + "src": "296:3283:18" } ], - "src": "0:3582:18" + "src": "0:3580:18" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/DailyLimitModule.sol", "exportedSymbols": { "DailyLimitModule": [ - 2079 + 2038 ] }, - "id": 2080, + "id": 2039, "nodeType": "SourceUnit", "nodes": [ { - "id": 1842, + "id": 1801, "literals": [ "solidity", "0.4", @@ -3440,9 +3440,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 1843, + "id": 1802, "nodeType": "ImportDirective", - "scope": 2080, + "scope": 2039, "sourceUnit": 733, "src": "24:23:18", "symbolAliases": [], @@ -3451,9 +3451,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 1844, + "id": 1803, "nodeType": "ImportDirective", - "scope": 2080, + "scope": 2039, "sourceUnit": 1104, "src": "48:30:18", "symbolAliases": [], @@ -3462,10 +3462,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 1845, + "id": 1804, "nodeType": "ImportDirective", - "scope": 2080, - "sourceUnit": 1514, + "scope": 2039, + "sourceUnit": 1512, "src": "79:29:18", "symbolAliases": [], "unitAlias": "" @@ -3473,9 +3473,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 1846, + "id": 1805, "nodeType": "ImportDirective", - "scope": 2080, + "scope": 2039, "sourceUnit": 31, "src": "109:21:18", "symbolAliases": [], @@ -3487,7 +3487,7 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1847, + "id": 1806, "name": "Module", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 732, @@ -3497,7 +3497,7 @@ "typeString": "contract Module" } }, - "id": 1848, + "id": 1807, "nodeType": "InheritanceSpecifier", "src": "325:6:18" } @@ -3505,27 +3505,27 @@ "contractDependencies": [ 632, 732, - 1663 + 1688 ], "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": 2079, + "id": 2038, "linearizedBaseContracts": [ - 2079, + 2038, 732, 632, - 1663 + 1688 ], "name": "DailyLimitModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 1851, + "id": 1810, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2079, + "scope": 2038, "src": "339:50:18", "stateVariable": true, "storageLocation": "default", @@ -3534,7 +3534,7 @@ "typeString": "string" }, "typeName": { - "id": 1849, + "id": 1808, "name": "string", "nodeType": "ElementaryTypeName", "src": "339:6:18", @@ -3546,7 +3546,7 @@ "value": { "argumentTypes": null, "hexValue": "4461696c79204c696d6974204d6f64756c65", - "id": 1850, + "id": 1809, "isConstant": false, "isLValue": false, "isPure": true, @@ -3565,10 +3565,10 @@ }, { "constant": true, - "id": 1854, + "id": 1813, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2079, + "scope": 2038, "src": "395:40:18", "stateVariable": true, "storageLocation": "default", @@ -3577,7 +3577,7 @@ "typeString": "string" }, "typeName": { - "id": 1852, + "id": 1811, "name": "string", "nodeType": "ElementaryTypeName", "src": "395:6:18", @@ -3589,7 +3589,7 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 1853, + "id": 1812, "isConstant": false, "isLValue": false, "isPure": true, @@ -3608,21 +3608,21 @@ }, { "constant": false, - "id": 1858, + "id": 1817, "name": "dailyLimits", "nodeType": "VariableDeclaration", - "scope": 2079, + "scope": 2038, "src": "513:50:18", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1865_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1824_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "typeName": { - "id": 1857, + "id": 1816, "keyType": { - "id": 1855, + "id": 1814, "name": "address", "nodeType": "ElementaryTypeName", "src": "522:7:18", @@ -3634,18 +3634,18 @@ "nodeType": "Mapping", "src": "513:31:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1865_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1824_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit)" }, "valueType": { "contractScope": null, - "id": 1856, + "id": 1815, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1865, + "referencedDeclaration": 1824, "src": "533:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } } @@ -3655,14 +3655,14 @@ }, { "canonicalName": "DailyLimitModule.DailyLimit", - "id": 1865, + "id": 1824, "members": [ { "constant": false, - "id": 1860, + "id": 1819, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1865, + "scope": 1824, "src": "598:18:18", "stateVariable": false, "storageLocation": "default", @@ -3671,7 +3671,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1859, + "id": 1818, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "598:7:18", @@ -3685,10 +3685,10 @@ }, { "constant": false, - "id": 1862, + "id": 1821, "name": "spentToday", "nodeType": "VariableDeclaration", - "scope": 1865, + "scope": 1824, "src": "626:18:18", "stateVariable": false, "storageLocation": "default", @@ -3697,7 +3697,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1861, + "id": 1820, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "626:7:18", @@ -3711,10 +3711,10 @@ }, { "constant": false, - "id": 1864, + "id": 1823, "name": "lastDay", "nodeType": "VariableDeclaration", - "scope": 1865, + "scope": 1824, "src": "654:15:18", "stateVariable": false, "storageLocation": "default", @@ -3723,7 +3723,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1863, + "id": 1822, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "654:7:18", @@ -3738,13 +3738,13 @@ ], "name": "DailyLimit", "nodeType": "StructDefinition", - "scope": 2079, + "scope": 2038, "src": "570:106:18", "visibility": "public" }, { "body": { - "id": 1900, + "id": 1859, "nodeType": "Block", "src": "994:146:18", "statements": [ @@ -3754,7 +3754,7 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1874, + "id": 1833, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -3765,7 +3765,7 @@ "typeString": "function ()" } }, - "id": 1875, + "id": 1834, "isConstant": false, "isLValue": false, "isPure": false, @@ -3779,7 +3779,7 @@ "typeString": "tuple()" } }, - "id": 1876, + "id": 1835, "nodeType": "ExpressionStatement", "src": "1004:12:18" }, @@ -3787,7 +3787,7 @@ "body": { "expression": { "argumentTypes": null, - "id": 1897, + "id": 1856, "isConstant": false, "isLValue": false, "isPure": false, @@ -3798,41 +3798,41 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1888, + "id": 1847, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, + "referencedDeclaration": 1817, "src": "1082:11:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1865_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1824_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1892, + "id": 1851, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1889, + "id": 1848, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1868, + "referencedDeclaration": 1827, "src": "1094:6:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1891, + "id": 1850, "indexExpression": { "argumentTypes": null, - "id": 1890, + "id": 1849, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1878, + "referencedDeclaration": 1837, "src": "1101:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3857,18 +3857,18 @@ "nodeType": "IndexAccess", "src": "1082:22:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1893, + "id": 1852, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1860, + "referencedDeclaration": 1819, "src": "1082:33:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3881,25 +3881,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1894, + "id": 1853, "name": "_dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1871, + "referencedDeclaration": 1830, "src": "1118:12:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 1896, + "id": 1855, "indexExpression": { "argumentTypes": null, - "id": 1895, + "id": 1854, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1878, + "referencedDeclaration": 1837, "src": "1131:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3923,7 +3923,7 @@ "typeString": "uint256" } }, - "id": 1898, + "id": 1857, "nodeType": "ExpressionStatement", "src": "1082:51:18" }, @@ -3933,18 +3933,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1884, + "id": 1843, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1881, + "id": 1840, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1878, + "referencedDeclaration": 1837, "src": "1046:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -3957,18 +3957,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1882, + "id": 1841, "name": "tokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1868, + "referencedDeclaration": 1827, "src": "1050:6:18", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1883, + "id": 1842, "isConstant": false, "isLValue": false, "isPure": false, @@ -3988,18 +3988,18 @@ "typeString": "bool" } }, - "id": 1899, + "id": 1858, "initializationExpression": { "assignments": [ - 1878 + 1837 ], "declarations": [ { "constant": false, - "id": 1878, + "id": 1837, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1901, + "scope": 1860, "src": "1031:9:18", "stateVariable": false, "storageLocation": "default", @@ -4008,7 +4008,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1877, + "id": 1836, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1031:7:18", @@ -4021,11 +4021,11 @@ "visibility": "internal" } ], - "id": 1880, + "id": 1839, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1879, + "id": 1838, "isConstant": false, "isLValue": false, "isPure": true, @@ -4046,7 +4046,7 @@ "loopExpression": { "expression": { "argumentTypes": null, - "id": 1886, + "id": 1845, "isConstant": false, "isLValue": false, "isPure": false, @@ -4057,11 +4057,11 @@ "src": "1065:3:18", "subExpression": { "argumentTypes": null, - "id": 1885, + "id": 1844, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1878, + "referencedDeclaration": 1837, "src": "1065:1:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4073,7 +4073,7 @@ "typeString": "uint256" } }, - "id": 1887, + "id": 1846, "nodeType": "ExpressionStatement", "src": "1065:3:18" }, @@ -4083,7 +4083,7 @@ ] }, "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": 1901, + "id": 1860, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4091,15 +4091,15 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 1872, + "id": 1831, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1868, + "id": 1827, "name": "tokens", "nodeType": "VariableDeclaration", - "scope": 1901, + "scope": 1860, "src": "933:16:18", "stateVariable": false, "storageLocation": "default", @@ -4109,7 +4109,7 @@ }, "typeName": { "baseType": { - "id": 1866, + "id": 1825, "name": "address", "nodeType": "ElementaryTypeName", "src": "933:7:18", @@ -4118,7 +4118,7 @@ "typeString": "address" } }, - "id": 1867, + "id": 1826, "length": null, "nodeType": "ArrayTypeName", "src": "933:9:18", @@ -4132,10 +4132,10 @@ }, { "constant": false, - "id": 1871, + "id": 1830, "name": "_dailyLimits", "nodeType": "VariableDeclaration", - "scope": 1901, + "scope": 1860, "src": "951:22:18", "stateVariable": false, "storageLocation": "default", @@ -4145,7 +4145,7 @@ }, "typeName": { "baseType": { - "id": 1869, + "id": 1828, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "951:7:18", @@ -4154,7 +4154,7 @@ "typeString": "uint256" } }, - "id": 1870, + "id": 1829, "length": null, "nodeType": "ArrayTypeName", "src": "951:9:18", @@ -4171,12 +4171,12 @@ }, "payable": false, "returnParameters": { - "id": 1873, + "id": 1832, "nodeType": "ParameterList", "parameters": [], "src": "994:0:18" }, - "scope": 2079, + "scope": 2038, "src": "918:222:18", "stateMutability": "nonpayable", "superFunction": null, @@ -4184,14 +4184,14 @@ }, { "body": { - "id": 1917, + "id": 1876, "nodeType": "Block", "src": "1467:59:18", "statements": [ { "expression": { "argumentTypes": null, - "id": 1915, + "id": 1874, "isConstant": false, "isLValue": false, "isPure": false, @@ -4202,25 +4202,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1910, + "id": 1869, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, + "referencedDeclaration": 1817, "src": "1477:11:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1865_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1824_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1912, + "id": 1871, "indexExpression": { "argumentTypes": null, - "id": 1911, + "id": 1870, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1903, + "referencedDeclaration": 1862, "src": "1489:5:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4234,18 +4234,18 @@ "nodeType": "IndexAccess", "src": "1477:18:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1913, + "id": 1872, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1860, + "referencedDeclaration": 1819, "src": "1477:29:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4256,11 +4256,11 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1914, + "id": 1873, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1905, + "referencedDeclaration": 1864, "src": "1509:10:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4273,24 +4273,24 @@ "typeString": "uint256" } }, - "id": 1916, + "id": 1875, "nodeType": "ExpressionStatement", "src": "1477:42:18" } ] }, "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": 1918, + "id": 1877, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1908, + "id": 1867, "modifierName": { "argumentTypes": null, - "id": 1907, + "id": 1866, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -4308,15 +4308,15 @@ "name": "changeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1906, + "id": 1865, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1903, + "id": 1862, "name": "token", "nodeType": "VariableDeclaration", - "scope": 1918, + "scope": 1877, "src": "1394:13:18", "stateVariable": false, "storageLocation": "default", @@ -4325,7 +4325,7 @@ "typeString": "address" }, "typeName": { - "id": 1902, + "id": 1861, "name": "address", "nodeType": "ElementaryTypeName", "src": "1394:7:18", @@ -4339,10 +4339,10 @@ }, { "constant": false, - "id": 1905, + "id": 1864, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 1918, + "scope": 1877, "src": "1409:18:18", "stateVariable": false, "storageLocation": "default", @@ -4351,7 +4351,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1904, + "id": 1863, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1409:7:18", @@ -4368,12 +4368,12 @@ }, "payable": false, "returnParameters": { - "id": 1909, + "id": 1868, "nodeType": "ParameterList", "parameters": [], "src": "1467:0:18" }, - "scope": 2079, + "scope": 2038, "src": "1368:158:18", "stateMutability": "nonpayable", "superFunction": null, @@ -4381,7 +4381,7 @@ }, { "body": { - "id": 2008, + "id": 1967, "nodeType": "Block", "src": "1979:898:18", "statements": [ @@ -4396,18 +4396,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1932, + "id": 1891, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2700, + "referencedDeclaration": 2659, "src": "2104:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1933, + "id": 1892, "isConstant": false, "isLValue": false, "isPure": false, @@ -4434,7 +4434,7 @@ "arguments": [ { "argumentTypes": null, - "id": 1929, + "id": 1888, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -4453,18 +4453,18 @@ "typeString": "contract ModuleManager" } ], - "id": 1928, + "id": 1887, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1513, + "referencedDeclaration": 1511, "src": "2074:12:18", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1513_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1511_$", "typeString": "type(contract OwnerManager)" } }, - "id": 1930, + "id": 1889, "isConstant": false, "isLValue": false, "isPure": false, @@ -4474,25 +4474,25 @@ "nodeType": "FunctionCall", "src": "2074:21:18", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1513", + "typeIdentifier": "t_contract$_OwnerManager_$1511", "typeString": "contract OwnerManager" } }, - "id": 1931, + "id": 1890, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1463, + "referencedDeclaration": 1461, "src": "2074:29:18", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 1934, + "id": 1893, "isConstant": false, "isLValue": false, "isPure": false, @@ -4509,7 +4509,7 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 1935, + "id": 1894, "isConstant": false, "isLValue": false, "isPure": true, @@ -4536,21 +4536,21 @@ "typeString": "literal_string \"Method can only be called by an owner\"" } ], - "id": 1927, + "id": 1886, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2066:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1936, + "id": 1895, "isConstant": false, "isLValue": false, "isPure": false, @@ -4564,7 +4564,7 @@ "typeString": "tuple()" } }, - "id": 1937, + "id": 1896, "nodeType": "ExpressionStatement", "src": "2066:91:18" }, @@ -4578,18 +4578,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1941, + "id": 1900, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1939, + "id": 1898, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1922, + "referencedDeclaration": 1881, "src": "2175:2:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4601,7 +4601,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1940, + "id": 1899, "isConstant": false, "isLValue": false, "isPure": true, @@ -4625,7 +4625,7 @@ { "argumentTypes": null, "hexValue": "496e76616c696420746f20616464726573732070726f7669646564", - "id": 1942, + "id": 1901, "isConstant": false, "isLValue": false, "isPure": true, @@ -4652,21 +4652,21 @@ "typeString": "literal_string \"Invalid to address provided\"" } ], - "id": 1938, + "id": 1897, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2167:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1943, + "id": 1902, "isConstant": false, "isLValue": false, "isPure": false, @@ -4680,7 +4680,7 @@ "typeString": "tuple()" } }, - "id": 1944, + "id": 1903, "nodeType": "ExpressionStatement", "src": "2167:47:18" }, @@ -4694,18 +4694,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1948, + "id": 1907, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1946, + "id": 1905, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1924, + "referencedDeclaration": 1883, "src": "2232:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4717,7 +4717,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1947, + "id": 1906, "isConstant": false, "isLValue": false, "isPure": true, @@ -4741,7 +4741,7 @@ { "argumentTypes": null, "hexValue": "496e76616c696420616d6f756e742070726f7669646564", - "id": 1949, + "id": 1908, "isConstant": false, "isLValue": false, "isPure": true, @@ -4768,21 +4768,21 @@ "typeString": "literal_string \"Invalid amount provided\"" } ], - "id": 1945, + "id": 1904, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2224:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1950, + "id": 1909, "isConstant": false, "isLValue": false, "isPure": false, @@ -4796,7 +4796,7 @@ "typeString": "tuple()" } }, - "id": 1951, + "id": 1910, "nodeType": "ExpressionStatement", "src": "2224:46:18" }, @@ -4809,11 +4809,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1954, + "id": 1913, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1920, + "referencedDeclaration": 1879, "src": "2365:5:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4822,11 +4822,11 @@ }, { "argumentTypes": null, - "id": 1955, + "id": 1914, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1924, + "referencedDeclaration": 1883, "src": "2372:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4845,18 +4845,18 @@ "typeString": "uint256" } ], - "id": 1953, + "id": 1912, "name": "isUnderLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2065, + "referencedDeclaration": 2024, "src": "2352:12:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) returns (bool)" } }, - "id": 1956, + "id": 1915, "isConstant": false, "isLValue": false, "isPure": false, @@ -4873,7 +4873,7 @@ { "argumentTypes": null, "hexValue": "4461696c79206c696d697420686173206265656e2072656163686564", - "id": 1957, + "id": 1916, "isConstant": false, "isLValue": false, "isPure": true, @@ -4900,21 +4900,21 @@ "typeString": "literal_string \"Daily limit has been reached\"" } ], - "id": 1952, + "id": 1911, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2344:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1958, + "id": 1917, "isConstant": false, "isLValue": false, "isPure": false, @@ -4928,14 +4928,14 @@ "typeString": "tuple()" } }, - "id": 1959, + "id": 1918, "nodeType": "ExpressionStatement", "src": "2344:68:18" }, { "expression": { "argumentTypes": null, - "id": 1965, + "id": 1924, "isConstant": false, "isLValue": false, "isPure": false, @@ -4946,25 +4946,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1960, + "id": 1919, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, + "referencedDeclaration": 1817, "src": "2422:11:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1865_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1824_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 1962, + "id": 1921, "indexExpression": { "argumentTypes": null, - "id": 1961, + "id": 1920, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1920, + "referencedDeclaration": 1879, "src": "2434:5:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -4978,18 +4978,18 @@ "nodeType": "IndexAccess", "src": "2422:18:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, - "id": 1963, + "id": 1922, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1862, + "referencedDeclaration": 1821, "src": "2422:29:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5000,11 +5000,11 @@ "operator": "+=", "rightHandSide": { "argumentTypes": null, - "id": 1964, + "id": 1923, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1924, + "referencedDeclaration": 1883, "src": "2455:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5017,7 +5017,7 @@ "typeString": "uint256" } }, - "id": 1966, + "id": 1925, "nodeType": "ExpressionStatement", "src": "2422:39:18" }, @@ -5028,18 +5028,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1969, + "id": 1928, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1967, + "id": 1926, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1920, + "referencedDeclaration": 1879, "src": "2475:5:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5051,7 +5051,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1968, + "id": 1927, "isConstant": false, "isLValue": false, "isPure": true, @@ -5073,21 +5073,21 @@ } }, "falseBody": { - "id": 2006, + "id": 1965, "nodeType": "Block", "src": "2633:238:18", "statements": [ { "assignments": [ - 1985 + 1944 ], "declarations": [ { "constant": false, - "id": 1985, + "id": 1944, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2009, + "scope": 1968, "src": "2647:17:18", "stateVariable": false, "storageLocation": "memory", @@ -5096,7 +5096,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1984, + "id": 1943, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2647:5:18", @@ -5109,14 +5109,14 @@ "visibility": "internal" } ], - "id": 1992, + "id": 1951, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "7472616e7366657228616464726573732c75696e7432353629", - "id": 1988, + "id": 1947, "isConstant": false, "isLValue": false, "isPure": true, @@ -5133,11 +5133,11 @@ }, { "argumentTypes": null, - "id": 1989, + "id": 1948, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1922, + "referencedDeclaration": 1881, "src": "2720:2:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5146,11 +5146,11 @@ }, { "argumentTypes": null, - "id": 1990, + "id": 1949, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1924, + "referencedDeclaration": 1883, "src": "2724:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5175,18 +5175,18 @@ ], "expression": { "argumentTypes": null, - "id": 1986, + "id": 1945, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2687, + "referencedDeclaration": 2646, "src": "2667:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 1987, + "id": 1946, "isConstant": false, "isLValue": false, "isPure": true, @@ -5200,7 +5200,7 @@ "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 1991, + "id": 1950, "isConstant": false, "isLValue": false, "isPure": false, @@ -5226,11 +5226,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1996, + "id": 1955, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1920, + "referencedDeclaration": 1879, "src": "2787:5:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5240,7 +5240,7 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1997, + "id": 1956, "isConstant": false, "isLValue": false, "isPure": true, @@ -5257,11 +5257,11 @@ }, { "argumentTypes": null, - "id": 1998, + "id": 1957, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1985, + "referencedDeclaration": 1944, "src": "2797:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -5274,7 +5274,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1999, + "id": 1958, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -5285,7 +5285,7 @@ "typeString": "type(contract Enum)" } }, - "id": 2000, + "id": 1959, "isConstant": false, "isLValue": false, "isPure": false, @@ -5299,7 +5299,7 @@ "typeString": "type(enum Enum.Operation)" } }, - "id": 2001, + "id": 1960, "isConstant": false, "isLValue": false, "isPure": true, @@ -5335,7 +5335,7 @@ ], "expression": { "argumentTypes": null, - "id": 1994, + "id": 1953, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -5346,7 +5346,7 @@ "typeString": "contract ModuleManager" } }, - "id": 1995, + "id": 1954, "isConstant": false, "isLValue": false, "isPure": false, @@ -5360,7 +5360,7 @@ "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2002, + "id": 1961, "isConstant": false, "isLValue": false, "isPure": false, @@ -5377,7 +5377,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74206578656375746520746f6b656e207472616e73666572", - "id": 2003, + "id": 1962, "isConstant": false, "isLValue": false, "isPure": true, @@ -5404,21 +5404,21 @@ "typeString": "literal_string \"Could not execute token transfer\"" } ], - "id": 1993, + "id": 1952, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2745:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2004, + "id": 1963, "isConstant": false, "isLValue": false, "isPure": false, @@ -5432,17 +5432,17 @@ "typeString": "tuple()" } }, - "id": 2005, + "id": 1964, "nodeType": "ExpressionStatement", "src": "2745:115:18" } ] }, - "id": 2007, + "id": 1966, "nodeType": "IfStatement", "src": "2471:400:18", "trueBody": { - "id": 1983, + "id": 1942, "nodeType": "Block", "src": "2487:140:18", "statements": [ @@ -5455,11 +5455,11 @@ "arguments": [ { "argumentTypes": null, - "id": 1973, + "id": 1932, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1922, + "referencedDeclaration": 1881, "src": "2543:2:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5468,11 +5468,11 @@ }, { "argumentTypes": null, - "id": 1974, + "id": 1933, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1924, + "referencedDeclaration": 1883, "src": "2547:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5482,7 +5482,7 @@ { "argumentTypes": null, "hexValue": "", - "id": 1975, + "id": 1934, "isConstant": false, "isLValue": false, "isPure": true, @@ -5503,7 +5503,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1976, + "id": 1935, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -5514,7 +5514,7 @@ "typeString": "type(contract Enum)" } }, - "id": 1977, + "id": 1936, "isConstant": false, "isLValue": false, "isPure": false, @@ -5528,7 +5528,7 @@ "typeString": "type(enum Enum.Operation)" } }, - "id": 1978, + "id": 1937, "isConstant": false, "isLValue": false, "isPure": true, @@ -5564,7 +5564,7 @@ ], "expression": { "argumentTypes": null, - "id": 1971, + "id": 1930, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -5575,7 +5575,7 @@ "typeString": "contract ModuleManager" } }, - "id": 1972, + "id": 1931, "isConstant": false, "isLValue": false, "isPure": false, @@ -5589,7 +5589,7 @@ "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 1979, + "id": 1938, "isConstant": false, "isLValue": false, "isPure": false, @@ -5606,7 +5606,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465206574686572207472616e73666572", - "id": 1980, + "id": 1939, "isConstant": false, "isLValue": false, "isPure": true, @@ -5633,21 +5633,21 @@ "typeString": "literal_string \"Could not execute ether transfer\"" } ], - "id": 1970, + "id": 1929, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2501:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1981, + "id": 1940, "isConstant": false, "isLValue": false, "isPure": false, @@ -5661,7 +5661,7 @@ "typeString": "tuple()" } }, - "id": 1982, + "id": 1941, "nodeType": "ExpressionStatement", "src": "2501:115:18" } @@ -5671,7 +5671,7 @@ ] }, "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": 2009, + "id": 1968, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5679,15 +5679,15 @@ "name": "executeDailyLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1925, + "id": 1884, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1920, + "id": 1879, "name": "token", "nodeType": "VariableDeclaration", - "scope": 2009, + "scope": 1968, "src": "1917:13:18", "stateVariable": false, "storageLocation": "default", @@ -5696,7 +5696,7 @@ "typeString": "address" }, "typeName": { - "id": 1919, + "id": 1878, "name": "address", "nodeType": "ElementaryTypeName", "src": "1917:7:18", @@ -5710,10 +5710,10 @@ }, { "constant": false, - "id": 1922, + "id": 1881, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2009, + "scope": 1968, "src": "1932:10:18", "stateVariable": false, "storageLocation": "default", @@ -5722,7 +5722,7 @@ "typeString": "address" }, "typeName": { - "id": 1921, + "id": 1880, "name": "address", "nodeType": "ElementaryTypeName", "src": "1932:7:18", @@ -5736,10 +5736,10 @@ }, { "constant": false, - "id": 1924, + "id": 1883, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2009, + "scope": 1968, "src": "1944:14:18", "stateVariable": false, "storageLocation": "default", @@ -5748,7 +5748,7 @@ "typeString": "uint256" }, "typeName": { - "id": 1923, + "id": 1882, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1944:7:18", @@ -5765,12 +5765,12 @@ }, "payable": false, "returnParameters": { - "id": 1926, + "id": 1885, "nodeType": "ParameterList", "parameters": [], "src": "1979:0:18" }, - "scope": 2079, + "scope": 2038, "src": "1890:987:18", "stateMutability": "nonpayable", "superFunction": null, @@ -5778,37 +5778,37 @@ }, { "body": { - "id": 2064, + "id": 2023, "nodeType": "Block", - "src": "2980:391:18", + "src": "2980:389:18", "statements": [ { "assignments": [ - 2019 + 1978 ], "declarations": [ { "constant": false, - "id": 2019, + "id": 1978, "name": "dailyLimit", "nodeType": "VariableDeclaration", - "scope": 2065, + "scope": 2024, "src": "2990:29:18", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" }, "typeName": { "contractScope": null, - "id": 2018, + "id": 1977, "name": "DailyLimit", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1865, + "referencedDeclaration": 1824, "src": "2990:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit" } }, @@ -5816,30 +5816,30 @@ "visibility": "internal" } ], - "id": 2023, + "id": 1982, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2020, + "id": 1979, "name": "dailyLimits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1858, + "referencedDeclaration": 1817, "src": "3022:11:18", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1865_storage_$", + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_DailyLimit_$1824_storage_$", "typeString": "mapping(address => struct DailyLimitModule.DailyLimit storage ref)" } }, - "id": 2022, + "id": 1981, "indexExpression": { "argumentTypes": null, - "id": 2021, + "id": 1980, "name": "token", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2011, + "referencedDeclaration": 1970, "src": "3034:5:18", "typeDescriptions": { "typeIdentifier": "t_address", @@ -5853,7 +5853,7 @@ "nodeType": "IndexAccess", "src": "3022:18:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage", "typeString": "struct DailyLimitModule.DailyLimit storage ref" } }, @@ -5867,7 +5867,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2028, + "id": 1987, "isConstant": false, "isLValue": false, "isPure": false, @@ -5877,18 +5877,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2024, + "id": 1983, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2078, + "referencedDeclaration": 2037, "src": "3054:5:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 2025, + "id": 1984, "isConstant": false, "isLValue": false, "isPure": false, @@ -5908,25 +5908,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2026, + "id": 1985, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, + "referencedDeclaration": 1978, "src": "3064:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2027, + "id": 1986, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 1864, + "referencedDeclaration": 1823, "src": "3064:18:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5940,18 +5940,18 @@ } }, "falseBody": null, - "id": 2043, + "id": 2002, "nodeType": "IfStatement", "src": "3050:126:18", "trueBody": { - "id": 2042, + "id": 2001, "nodeType": "Block", "src": "3084:92:18", "statements": [ { "expression": { "argumentTypes": null, - "id": 2034, + "id": 1993, "isConstant": false, "isLValue": false, "isPure": false, @@ -5960,25 +5960,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2029, + "id": 1988, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, + "referencedDeclaration": 1978, "src": "3098:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2031, + "id": 1990, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "lastDay", "nodeType": "MemberAccess", - "referencedDeclaration": 1864, + "referencedDeclaration": 1823, "src": "3098:18:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -5992,18 +5992,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2032, + "id": 1991, "name": "today", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2078, + "referencedDeclaration": 2037, "src": "3119:5:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 2033, + "id": 1992, "isConstant": false, "isLValue": false, "isPure": false, @@ -6023,14 +6023,14 @@ "typeString": "uint256" } }, - "id": 2035, + "id": 1994, "nodeType": "ExpressionStatement", "src": "3098:28:18" }, { "expression": { "argumentTypes": null, - "id": 2040, + "id": 1999, "isConstant": false, "isLValue": false, "isPure": false, @@ -6039,25 +6039,25 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2036, + "id": 1995, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, + "referencedDeclaration": 1978, "src": "3140:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2038, + "id": 1997, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1862, + "referencedDeclaration": 1821, "src": "3140:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -6069,7 +6069,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 2039, + "id": 1998, "isConstant": false, "isLValue": false, "isPure": true, @@ -6090,7 +6090,7 @@ "typeString": "uint256" } }, - "id": 2041, + "id": 2000, "nodeType": "ExpressionStatement", "src": "3140:25:18" } @@ -6104,7 +6104,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2058, + "id": 2017, "isConstant": false, "isLValue": false, "isPure": false, @@ -6115,7 +6115,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2050, + "id": 2009, "isConstant": false, "isLValue": false, "isPure": false, @@ -6126,7 +6126,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2047, + "id": 2006, "isConstant": false, "isLValue": false, "isPure": false, @@ -6135,26 +6135,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2044, + "id": 2003, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, - "src": "3192:10:18", + "referencedDeclaration": 1978, + "src": "3189:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2045, + "id": 2004, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1862, - "src": "3192:21:18", + "referencedDeclaration": 1821, + "src": "3189:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6164,18 +6164,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2046, + "id": 2005, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2013, - "src": "3216:6:18", + "referencedDeclaration": 1972, + "src": "3213:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3192:30:18", + "src": "3189:30:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6187,32 +6187,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2048, + "id": 2007, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, - "src": "3226:10:18", + "referencedDeclaration": 1978, + "src": "3223:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2049, + "id": 2008, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "dailyLimit", "nodeType": "MemberAccess", - "referencedDeclaration": 1860, - "src": "3226:21:18", + "referencedDeclaration": 1819, + "src": "3223:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3192:55:18", + "src": "3189:55:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6226,7 +6226,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2057, + "id": 2016, "isConstant": false, "isLValue": false, "isPure": false, @@ -6237,7 +6237,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2054, + "id": 2013, "isConstant": false, "isLValue": false, "isPure": false, @@ -6246,26 +6246,26 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2051, + "id": 2010, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, - "src": "3263:10:18", + "referencedDeclaration": 1978, + "src": "3261:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2052, + "id": 2011, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1862, - "src": "3263:21:18", + "referencedDeclaration": 1821, + "src": "3261:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6275,18 +6275,18 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 2053, + "id": 2012, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2013, - "src": "3287:6:18", + "referencedDeclaration": 1972, + "src": "3285:6:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3263:30:18", + "src": "3261:30:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6298,59 +6298,59 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2055, + "id": 2014, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2019, - "src": "3296:10:18", + "referencedDeclaration": 1978, + "src": "3294:10:18", "typeDescriptions": { - "typeIdentifier": "t_struct$_DailyLimit_$1865_storage_ptr", + "typeIdentifier": "t_struct$_DailyLimit_$1824_storage_ptr", "typeString": "struct DailyLimitModule.DailyLimit storage pointer" } }, - "id": 2056, + "id": 2015, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "spentToday", "nodeType": "MemberAccess", - "referencedDeclaration": 1862, - "src": "3296:21:18", + "referencedDeclaration": 1821, + "src": "3294:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3263:54:18", + "src": "3261:54:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3192:125:18", + "src": "3189:126:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2061, + "id": 2020, "nodeType": "IfStatement", - "src": "3185:157:18", + "src": "3185:155:18", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2059, + "id": 2018, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3338:4:18", + "src": "3336:4:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6358,24 +6358,24 @@ }, "value": "true" }, - "functionReturnParameters": 2017, - "id": 2060, + "functionReturnParameters": 1976, + "id": 2019, "nodeType": "Return", - "src": "3331:11:18" + "src": "3329:11:18" } }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2062, + "id": 2021, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3359:5:18", + "src": "3357:5:18", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6383,15 +6383,15 @@ }, "value": "false" }, - "functionReturnParameters": 2017, - "id": 2063, + "functionReturnParameters": 1976, + "id": 2022, "nodeType": "Return", - "src": "3352:12:18" + "src": "3350:12:18" } ] }, "documentation": null, - "id": 2065, + "id": 2024, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6399,15 +6399,15 @@ "name": "isUnderLimit", "nodeType": "FunctionDefinition", "parameters": { - "id": 2014, + "id": 1973, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2011, + "id": 1970, "name": "token", "nodeType": "VariableDeclaration", - "scope": 2065, + "scope": 2024, "src": "2905:13:18", "stateVariable": false, "storageLocation": "default", @@ -6416,7 +6416,7 @@ "typeString": "address" }, "typeName": { - "id": 2010, + "id": 1969, "name": "address", "nodeType": "ElementaryTypeName", "src": "2905:7:18", @@ -6430,10 +6430,10 @@ }, { "constant": false, - "id": 2013, + "id": 1972, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 2065, + "scope": 2024, "src": "2920:14:18", "stateVariable": false, "storageLocation": "default", @@ -6442,7 +6442,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2012, + "id": 1971, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2920:7:18", @@ -6459,15 +6459,15 @@ }, "payable": false, "returnParameters": { - "id": 2017, + "id": 1976, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2016, + "id": 1975, "name": "", "nodeType": "VariableDeclaration", - "scope": 2065, + "scope": 2024, "src": "2970:4:18", "stateVariable": false, "storageLocation": "default", @@ -6476,7 +6476,7 @@ "typeString": "bool" }, "typeName": { - "id": 2015, + "id": 1974, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2970:4:18", @@ -6491,17 +6491,17 @@ ], "src": "2969:6:18" }, - "scope": 2079, - "src": "2883:488:18", + "scope": 2038, + "src": "2883:486:18", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 2077, + "id": 2036, "nodeType": "Block", - "src": "3535:44:18", + "src": "3533:44:18", "statements": [ { "expression": { @@ -6510,19 +6510,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2075, + "id": 2034, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2070, + "id": 2029, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "3552:3:18", + "referencedDeclaration": 2661, + "src": "3550:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6539,19 +6539,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2073, + "id": 2032, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2071, + "id": 2030, "name": "now", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "3559:3:18", + "referencedDeclaration": 2661, + "src": "3557:3:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6562,14 +6562,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 2072, + "id": 2031, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3565:6:18", + "src": "3563:6:18", "subdenomination": "days", "typeDescriptions": { "typeIdentifier": "t_rational_86400_by_1", @@ -6577,41 +6577,41 @@ }, "value": "1" }, - "src": "3559:12:18", + "src": "3557:12:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 2074, + "id": 2033, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "3558:14:18", + "src": "3556:14:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3552:20:18", + "src": "3550:20:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "functionReturnParameters": 2069, - "id": 2076, + "functionReturnParameters": 2028, + "id": 2035, "nodeType": "Return", - "src": "3545:27:18" + "src": "3543:27:18" } ] }, "documentation": "@dev Returns last midnight as Unix timestamp.\n @return Unix timestamp.", - "id": 2078, + "id": 2037, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6619,23 +6619,23 @@ "name": "today", "nodeType": "FunctionDefinition", "parameters": { - "id": 2066, + "id": 2025, "nodeType": "ParameterList", "parameters": [], - "src": "3477:2:18" + "src": "3475:2:18" }, "payable": false, "returnParameters": { - "id": 2069, + "id": 2028, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2068, + "id": 2027, "name": "", "nodeType": "VariableDeclaration", - "scope": 2078, - "src": "3525:4:18", + "scope": 2037, + "src": "3523:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6643,10 +6643,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2067, + "id": 2026, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "3525:4:18", + "src": "3523:4:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6656,105 +6656,33 @@ "visibility": "internal" } ], - "src": "3524:6:18" + "src": "3522:6:18" }, - "scope": 2079, - "src": "3463:116:18", + "scope": 2038, + "src": "3461:116:18", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 2080, - "src": "296:3285:18" + "scope": 2039, + "src": "296:3283:18" } ], - "src": "0:3582:18" + "src": "0:3580:18" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { - "4": { + "1530197641790": { "events": {}, "links": {}, - "address": "0xd3190a95d891a6b6ad63a89743bc904d0df1e16a", - "transactionHash": "0x93dcca814a85bf41c834ec12eb8c25466adc1ca344daa931e4c58af9eb169be7" - }, - "1529327661534": { - "events": {}, - "links": {}, - "address": "0xb81d31d61de61219dd476d956cb3117811e77099", - "transactionHash": "0x3021791e1a708289f6f7011012c66077660f073e5b6a312471650c1f9b745e7b" - }, - "1529333415702": { - "events": {}, - "links": {}, - "address": "0xaff94993c9e18850a990c68bbb61d4531d3e61dd", - "transactionHash": "0xff53c43c6c273ba0614353b138d78042df23d7dc6bdf767fd00fe03b538fa019" - }, - "1529652204341": { - "events": {}, - "links": {}, - "address": "0x33eccff7f17d7533b9d127d3885ea4b145ca962c", - "transactionHash": "0x95b2c0b5b1a282240281542feb7748212fb861c364007da93b6aba6ce6bc38cf" - }, - "1529931780812": { - "events": {}, - "links": {}, - "address": "0x74e843ec49a7a6fd348df3352290886160803bcb", - "transactionHash": "0x95b2c0b5b1a282240281542feb7748212fb861c364007da93b6aba6ce6bc38cf" - }, - "1529933005377": { - "events": {}, - "links": {}, - "address": "0xa7e059e720bd86039e3541b65c030b3f43791fa0", - "transactionHash": "0x95b2c0b5b1a282240281542feb7748212fb861c364007da93b6aba6ce6bc38cf" - }, - "1529934931891": { - "events": {}, - "links": {}, - "address": "0x9c6e0ffe724d85944e1c14a895c7b633ea543094", - "transactionHash": "0x95b2c0b5b1a282240281542feb7748212fb861c364007da93b6aba6ce6bc38cf" - }, - "1529935355957": { - "events": {}, - "links": {}, - "address": "0xc53eeb9b4d72dd908a118d43546e6a2230ba39fc", - "transactionHash": "0x95b2c0b5b1a282240281542feb7748212fb861c364007da93b6aba6ce6bc38cf" - }, - "1529936204222": { - "events": {}, - "links": {}, - "address": "0x3d89837f5d3cda6897f2699cf61e4f1e528eac05", - "transactionHash": "0x95b2c0b5b1a282240281542feb7748212fb861c364007da93b6aba6ce6bc38cf" - }, - "1529937280871": { - "events": {}, - "links": {}, - "address": "0x98840212856b242cbde9a3df259dbc09f6f5dc23", - "transactionHash": "0x95b2c0b5b1a282240281542feb7748212fb861c364007da93b6aba6ce6bc38cf" - }, - "1529937637076": { - "events": {}, - "links": {}, - "address": "0x9b15f617ab46ed8243c92c01d42d945fe14e29e2", - "transactionHash": "0x95b2c0b5b1a282240281542feb7748212fb861c364007da93b6aba6ce6bc38cf" - }, - "1529937890676": { - "events": {}, - "links": {}, - "address": "0xa9bb3d0396f52527128815e9b7a919bae5bdafd9", - "transactionHash": "0x95b2c0b5b1a282240281542feb7748212fb861c364007da93b6aba6ce6bc38cf" - }, - "1530013596495": { - "events": {}, - "links": {}, - "address": "0xea9ce8b428b4ae65b7e0c5fa10f5529739858ad4", - "transactionHash": "0x95b2c0b5b1a282240281542feb7748212fb861c364007da93b6aba6ce6bc38cf" + "address": "0x6349d4e2ef33e305033bda93c45ef454810346b3", + "transactionHash": "0xd0f59a196401ef299e4cdd3f882bdd1750643e2406200f6cbacc472535e90ee4" } }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-26T11:47:04.138Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:58.247Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/DelegateConstructorProxy.json b/safe-contracts/build/contracts/DelegateConstructorProxy.json index 2b84d823..47441b6a 100644 --- a/safe-contracts/build/contracts/DelegateConstructorProxy.json +++ b/safe-contracts/build/contracts/DelegateConstructorProxy.json @@ -661,6 +661,6 @@ "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-18T14:44:09.445Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:56.476Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/ERC20Token.json b/safe-contracts/build/contracts/ERC20Token.json deleted file mode 100644 index fc0ad6b8..00000000 --- a/safe-contracts/build/contracts/ERC20Token.json +++ /dev/null @@ -1,1799 +0,0 @@ -{ - "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": [ - 1571 - ] - }, - "id": 1572, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1507, - "literals": [ - "solidity", - "^", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:24:10" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 1571, - "linearizedBaseContracts": [ - 1571 - ], - "name": "ERC20Token", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1509, - "name": "totalSupply", - "nodeType": "VariableDeclaration", - "scope": 1571, - "src": "616:26:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1508, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "616:7:10", - "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": 1516, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1512, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1511, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 1516, - "src": "771:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1510, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "771:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "770:16:10" - }, - "payable": false, - "returnParameters": { - "id": 1515, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1514, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 1516, - "src": "812:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1513, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "812:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "811:17:10" - }, - "scope": 1571, - "src": "752:77:10", - "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": 1525, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1521, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1518, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 1525, - "src": "1083:11:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1517, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1083:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1520, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1525, - "src": "1096:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1519, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1096:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1082:29:10" - }, - "payable": false, - "returnParameters": { - "id": 1524, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1523, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1525, - "src": "1128:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1522, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1128:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1127:14:10" - }, - "scope": 1571, - "src": "1065:77:10", - "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": 1536, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1527, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 1536, - "src": "1485:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1526, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1485:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1529, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 1536, - "src": "1500:11:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1528, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1500:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1531, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1536, - "src": "1513:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1530, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1513:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1484:44:10" - }, - "payable": false, - "returnParameters": { - "id": 1535, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1534, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1536, - "src": "1545:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1533, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1545:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1544:14:10" - }, - "scope": 1571, - "src": "1463:96:10", - "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": 1545, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1538, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 1545, - "src": "1865:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1537, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1540, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1545, - "src": "1883:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1539, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1883:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1864:34:10" - }, - "payable": false, - "returnParameters": { - "id": 1544, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1543, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1545, - "src": "1915:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1542, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1915:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1914:14:10" - }, - "scope": 1571, - "src": "1848:81:10", - "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": 1554, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1547, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2156:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1546, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2156:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1549, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2172:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1548, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2172:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2155:34:10" - }, - "payable": false, - "returnParameters": { - "id": 1553, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1552, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2215:17:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1551, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2215:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2214:19:10" - }, - "scope": 1571, - "src": "2137:97:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 1562, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 1561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1556, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 1562, - "src": "2255:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1555, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2255:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1558, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 1562, - "src": "2278:19:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1557, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2278:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1560, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1562, - "src": "2299:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1559, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2299:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2254:60:10" - }, - "src": "2240:75:10" - }, - { - "anonymous": false, - "documentation": null, - "id": 1570, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 1569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1564, - "indexed": true, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 1570, - "src": "2335:22:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2335:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1566, - "indexed": true, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 1570, - "src": "2359:24:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2359:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1568, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1570, - "src": "2385:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1567, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2385:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2334:66:10" - }, - "src": "2320:81:10" - } - ], - "scope": 1572, - "src": "129:2274:10" - } - ], - "src": "0:2403:10" - }, - "legacyAST": { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ERC20Token.sol", - "exportedSymbols": { - "ERC20Token": [ - 1571 - ] - }, - "id": 1572, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1507, - "literals": [ - "solidity", - "^", - "0.4", - ".23" - ], - "nodeType": "PragmaDirective", - "src": "0:24:10" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 1571, - "linearizedBaseContracts": [ - 1571 - ], - "name": "ERC20Token", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1509, - "name": "totalSupply", - "nodeType": "VariableDeclaration", - "scope": 1571, - "src": "616:26:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1508, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "616:7:10", - "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": 1516, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1512, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1511, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 1516, - "src": "771:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1510, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "771:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "770:16:10" - }, - "payable": false, - "returnParameters": { - "id": 1515, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1514, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 1516, - "src": "812:15:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1513, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "812:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "811:17:10" - }, - "scope": 1571, - "src": "752:77:10", - "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": 1525, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1521, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1518, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 1525, - "src": "1083:11:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1517, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1083:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1520, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1525, - "src": "1096:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1519, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1096:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1082:29:10" - }, - "payable": false, - "returnParameters": { - "id": 1524, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1523, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1525, - "src": "1128:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1522, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1128:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1127:14:10" - }, - "scope": 1571, - "src": "1065:77:10", - "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": 1536, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1532, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1527, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 1536, - "src": "1485:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1526, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1485:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1529, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 1536, - "src": "1500:11:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1528, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1500:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1531, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1536, - "src": "1513:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1530, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1513:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1484:44:10" - }, - "payable": false, - "returnParameters": { - "id": 1535, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1534, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1536, - "src": "1545:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1533, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1545:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1544:14:10" - }, - "scope": 1571, - "src": "1463:96:10", - "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": 1545, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": false, - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1538, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 1545, - "src": "1865:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1537, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1865:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1540, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1545, - "src": "1883:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1539, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1883:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1864:34:10" - }, - "payable": false, - "returnParameters": { - "id": 1544, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1543, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1545, - "src": "1915:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1542, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1915:4:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1914:14:10" - }, - "scope": 1571, - "src": "1848:81:10", - "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": 1554, - "implemented": false, - "isConstructor": false, - "isDeclaredConst": true, - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1547, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2156:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1546, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2156:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1549, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2172:16:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1548, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2172:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2155:34:10" - }, - "payable": false, - "returnParameters": { - "id": 1553, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1552, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 1554, - "src": "2215:17:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1551, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2215:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2214:19:10" - }, - "scope": 1571, - "src": "2137:97:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 1562, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 1561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1556, - "indexed": true, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 1562, - "src": "2255:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1555, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2255:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1558, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 1562, - "src": "2278:19:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1557, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2278:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1560, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1562, - "src": "2299:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1559, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2299:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2254:60:10" - }, - "src": "2240:75:10" - }, - { - "anonymous": false, - "documentation": null, - "id": 1570, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 1569, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1564, - "indexed": true, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 1570, - "src": "2335:22:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1563, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2335:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1566, - "indexed": true, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 1570, - "src": "2359:24:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2359:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1568, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1570, - "src": "2385:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1567, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2385:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2334:66:10" - }, - "src": "2320:81:10" - } - ], - "scope": 1572, - "src": "129:2274:10" - } - ], - "src": "0:2403:10" - }, - "compiler": { - "name": "solc", - "version": "0.4.24+commit.e67f0147.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-20T07:57:27.029Z" -} \ No newline at end of file diff --git a/safe-contracts/build/contracts/Enum.json b/safe-contracts/build/contracts/Enum.json index 5cb7d08c..44d288ca 100644 --- a/safe-contracts/build/contracts/Enum.json +++ b/safe-contracts/build/contracts/Enum.json @@ -3,29 +3,29 @@ "abi": [], "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820641ab8b295edfaa2b1c8a8e0ae7d17ea2f4c8b95ea27e45d8947ed9a4799ca1f0029", "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820641ab8b295edfaa2b1c8a8e0ae7d17ea2f4c8b95ea27e45d8947ed9a4799ca1f0029", - "sourceMap": "115:95:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;115:95:0;;;;;;;", - "deployedSourceMap": "115:95:0:-;;;;;", + "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", ".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", ".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.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-20T07:57:26.985Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:56.477Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/GnosisSafe.json b/safe-contracts/build/contracts/GnosisSafe.json index b5623de0..f46bfdb6 100644 --- a/safe-contracts/build/contracts/GnosisSafe.json +++ b/safe-contracts/build/contracts/GnosisSafe.json @@ -1,6 +1,24 @@ { "contractName": "GnosisSafe", "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "_threshold", + "type": "uint256" + } + ], + "name": "addOwnerWithThreshold", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [ @@ -65,6 +83,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "_threshold", + "type": "uint256" + } + ], + "name": "changeThreshold", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], @@ -79,28 +111,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint8" - } - ], - "name": "removeOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": true, "inputs": [], @@ -157,38 +167,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "_threshold", - "type": "uint8" - } - ], - "name": "changeThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint8" - } - ], - "name": "addOwnerWithThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": false, "inputs": [ @@ -236,13 +214,35 @@ "outputs": [ { "name": "", - "type": "uint8" + "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "prevOwner", + "type": "address" + }, + { + "name": "owner", + "type": "address" + }, + { + "name": "_threshold", + "type": "uint256" + } + ], + "name": "removeOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], @@ -283,7 +283,7 @@ }, { "name": "_threshold", - "type": "uint8" + "type": "uint256" }, { "name": "to", @@ -301,62 +301,62 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50613003806100206000396000f3006080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f54bf6e146100e8578063468721a714610143578063610b5925146101fb57806385e332cd1461023e57806386040aa9146102955780638cff635514610305578063a04222e11461035c578063a0e67e2b14610435578063a3f4df7e146104a1578063b2494df314610531578063b7f3358d1461059d578063b91a667f146105cd578063e009cfde1461061d578063e318b52b14610680578063e75235b814610703578063ffa1ad7414610734575b005b3480156100f457600080fd5b50610129600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107c4565b604051808215151515815260200191505060405180910390f35b34801561014f57600080fd5b506101e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610846565b604051808215151515815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610971565b005b34801561024a57600080fd5b50610253610d4b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102a157600080fd5b50610303600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610d50565b005b34801561031157600080fd5b5061031a61123b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036857600080fd5b5061043360048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611240565b005b34801561044157600080fd5b5061044a61125a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561048d578082015181840152602081019050610472565b505050509050019250505060405180910390f35b3480156104ad57600080fd5b506104b66113f5565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104f65780820151818401526020810190506104db565b50505050905090810190601f1680156105235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561053d57600080fd5b5061054661142e565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561058957808201518184015260208101905061056e565b505050509050019250505060405180910390f35b3480156105a957600080fd5b506105cb600480360381019080803560ff1690602001909291905050506116d1565b005b3480156105d957600080fd5b5061061b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506118ec565b005b34801561062957600080fd5b5061067e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cf5565b005b34801561068c57600080fd5b50610701600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061210a565b005b34801561070f57600080fd5b50610718612757565b604051808260ff1660ff16815260200191505060405180910390f35b34801561074057600080fd5b50610749612761565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561078957808201518184015260208101905061076e565b50505050905090810190601f1680156107b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561095a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610967858585855a61279a565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610a8e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610b02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610bee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ff1660016002540310151515610ebf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610f135750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610f87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156110af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055508060ff1660035414151561123657611235816116d1565b5b505050565b600181565b61124a8484612897565b6112548282612d5f565b50505050565b6060806000806002546040519080825280602002602001820160405280156112915781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156113ec5780838381518110151561134157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506112fc565b82935050505090565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611540576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061149c565b8260405190808252806020026020018201604052801561156f5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156116c85781818481518110151561161e57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506115d9565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561179a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002548160ff161115151561183d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018160ff16101515156118df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ff1660038190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611a095750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611a7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611b6a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600081548092919060010191905055508060ff16600354141515611cf157611cf0816116d1565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611e125750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611e86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611fad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156122275750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561229b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156123dc5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612578576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600354905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b600080600060028111156127aa57fe5b8460028111156127b657fe5b14156127cf576127c887878786612f95565b915061288d565b600160028111156127dc57fe5b8460028111156127e857fe5b1415612800576127f9878685612fae565b915061288c565b61280985612fc5565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600080600080600354141515612915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518460ff16111515156129b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018460ff1610151515612a59576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015612cc8578482815181101515612a7957fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015612ad95750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612b4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612c3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050612a62565b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084516002819055508360ff166003819055505050505050565b6000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612e72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515612f9157612f1c82825a612fae565b1515612f90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820a9ec33481152b7e7383f078b0dd129e398386af65e548de4e86ac13d1d35683a0029", - "deployedBytecode": "0x6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f54bf6e146100e8578063468721a714610143578063610b5925146101fb57806385e332cd1461023e57806386040aa9146102955780638cff635514610305578063a04222e11461035c578063a0e67e2b14610435578063a3f4df7e146104a1578063b2494df314610531578063b7f3358d1461059d578063b91a667f146105cd578063e009cfde1461061d578063e318b52b14610680578063e75235b814610703578063ffa1ad7414610734575b005b3480156100f457600080fd5b50610129600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506107c4565b604051808215151515815260200191505060405180910390f35b34801561014f57600080fd5b506101e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610846565b604051808215151515815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610971565b005b34801561024a57600080fd5b50610253610d4b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156102a157600080fd5b50610303600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610d50565b005b34801561031157600080fd5b5061031a61123b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561036857600080fd5b5061043360048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611240565b005b34801561044157600080fd5b5061044a61125a565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561048d578082015181840152602081019050610472565b505050509050019250505060405180910390f35b3480156104ad57600080fd5b506104b66113f5565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104f65780820151818401526020810190506104db565b50505050905090810190601f1680156105235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561053d57600080fd5b5061054661142e565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561058957808201518184015260208101905061056e565b505050509050019250505060405180910390f35b3480156105a957600080fd5b506105cb600480360381019080803560ff1690602001909291905050506116d1565b005b3480156105d957600080fd5b5061061b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506118ec565b005b34801561062957600080fd5b5061067e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cf5565b005b34801561068c57600080fd5b50610701600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061210a565b005b34801561070f57600080fd5b50610718612757565b604051808260ff1660ff16815260200191505060405180910390f35b34801561074057600080fd5b50610749612761565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561078957808201518184015260208101905061076e565b50505050905090810190601f1680156107b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561095a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610967858585855a61279a565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a3a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610a8e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610b02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610bee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ff1660016002540310151515610ebf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610f135750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610f87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156110af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600260008154809291906001900391905055508060ff1660035414151561123657611235816116d1565b5b505050565b600181565b61124a8484612897565b6112548282612d5f565b50505050565b6060806000806002546040519080825280602002602001820160405280156112915781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156113ec5780838381518110151561134157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081806001019250506112fc565b82935050505090565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611540576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150828060010193505061149c565b8260405190808252806020026020018201604052801561156f5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156116c85781818481518110151561161e57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506115d9565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561179a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002548160ff161115151561183d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018160ff16101515156118df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ff1660038190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611a095750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611a7d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611b6a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506002600081548092919060010191905055508060ff16600354141515611cf157611cf0816116d1565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611e125750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611e86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611fad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156121d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156122275750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561229b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612388576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156123dc5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612450576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612578576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600354905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b600080600060028111156127aa57fe5b8460028111156127b657fe5b14156127cf576127c887878786612f95565b915061288d565b600160028111156127dc57fe5b8460028111156127e857fe5b1415612800576127f9878685612fae565b915061288c565b61280985612fc5565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600080600080600354141515612915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518460ff16111515156129b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018460ff1610151515612a59576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015612cc8578482815181101515612a7957fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015612ad95750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612b4d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612c3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050612a62565b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084516002819055508360ff166003819055505050505050565b6000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612e72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515612f9157612f1c82825a612fae565b1515612f90576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820a9ec33481152b7e7383f078b0dd129e398386af65e548de4e86ac13d1d35683a0029", - "sourceMap": "322:674:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;322:674:1;;;;;;;", - "deployedSourceMap": "322:674:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5610:129:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5610:129:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2841:429:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2841:429:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:459:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:55;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:55:6;;;;;;;;;;;;;;;;;;;;;;;;;;;3026:781:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3026:781: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5821:458:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5821: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;5821: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4794:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4794: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;4794:738:6;;;;;;;;;;;;;;;;;5081:397:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5081:397:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;2091:593;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2091:593:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:474:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2031:474:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4141:751:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4141:751:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5484:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5484:120: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5610:129:7;5687:4;5731:1;5714:6;:13;5721:5;5714:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5707:25;;5610:129;;;:::o;2841:429:6:-;2973:12;3081:1;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;3050:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3217:46;3225:2;3229:5;3236:4;3242:9;3253;3217:7;:46::i;:::-;3207:56;;2841:429;;;;;;:::o;1311:459::-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1477:1:6;1466:6;1458:20;;;;:59;;;;;550:3;1482:35;;1490:6;1482:35;;;;1458:59;1450:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:1;1612:7;:15;1620:6;1612:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1604:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:7;:25;550:3;1694:25;;;;;;;;;;;;;;;;;;;;;;;;;1676:7;:15;1684:6;1676:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1757:6;1729:7;:25;550:3;1729:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1311:459;:::o;499:55::-;550:3;499:55;:::o;3026:781:7:-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3250:10:7;3232:28;;3245:1;3232:10;;:14;:28;;3224:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3425:1;3416:5;:10;;;;:38;;;;;337:3;3430:24;;:5;:24;;;;3416:38;3408:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3528:5;3507:26;;:6;:17;3514:9;3507:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3499:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3606:6;:13;3613:5;3606:13;;;;;;;;;;;;;;;;;;;;;;;;;3586:6;:17;3593:9;3586:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3645:1;3629:6;:13;3636:5;3629:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3656:10;;:12;;;;;;;;;;;;;;3749:10;3736:23;;:9;;:23;;3732:68;;;3773:27;3789:10;3773:15;:27::i;:::-;3732:68;3026:781;;;:::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;5821:458:7:-;5887:9;5912:22;6006:13;6033:20;5951:10;;5937: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;5937:25:7;;;;5912:50;;6022:1;6006:17;;6056:6;:23;337:3;6056:23;;;;;;;;;;;;;;;;;;;;;;;;;6033:46;;6089:162;337:3;6095:31;;:12;:31;;;;6089:162;;;6157:12;6142:5;6148;6142:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6198:6;:20;6205:12;6198:20;;;;;;;;;;;;;;;;;;;;;;;;;6183:35;;6232:8;;;;;;;6089:162;;;6267:5;6260:12;;5821:458;;;;:::o;401:46:6:-;;;;;;;;;;;;;;;;;;;;:::o;4794:738::-;4861:9;4920:19;4953:21;5153:22;4942:1;4920:23;;4977:7;:25;550:3;4977:25;;;;;;;;;;;;;;;;;;;;;;;;;4953:49;;5012:132;550:3;5018:33;;:13;:33;;;;5012:132;;;5083:7;:22;5091:13;5083:22;;;;;;;;;;;;;;;;;;;;;;;;;5067:38;;5119:14;;;;;;;5012:132;;;5192:11;5178: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;5178:26:6;;;;5153:51;;5262:1;5248:15;;5289:7;:25;550:3;5289:25;;;;;;;;;;;;;;;;;;;;;;;;;5273:41;;5324:180;550:3;5330:33;;:13;:33;;;;5324:180;;;5400:13;5379:5;5385:11;5379:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5443:7;:22;5451:13;5443:22;;;;;;;;;;;;;;;;;;;;;;;;;5427:38;;5479:14;;;;;;;5324:180;;;5520:5;5513:12;;4794:738;;;;:::o;5081:397:7:-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5263:10:7;;5249;:24;;;;5241:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5397:1;5383:10;:15;;;;5375:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5461:10;5449:22;;:9;:22;;;;5081:397;:::o;2091:593::-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2261:1:7;2252:5;:10;;;;:38;;;;;337:3;2266:24;;:5;:24;;;;2252:38;2244:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2400:1;2383:6;:13;2390:5;2383:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2375:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2459:6;:23;337:3;2459:23;;;;;;;;;;;;;;;;;;;;;;;;;2443:6;:13;2450:5;2443:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2518:5;2492:6;:23;337:3;2492:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2533:10;;:12;;;;;;;;;;;;;2626:10;2613:23;;:9;;:23;;2609:68;;;2650:27;2666:10;2650:15;:27::i;:::-;2609:68;2091:593;;:::o;2031:474:6:-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:1:6;2234:6;2226:20;;;;:59;;;;;550:3;2250:35;;2258:6;2250:35;;;;2226:59;2218:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2370:6;2339:38;;:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2331:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2454:7;:15;2462:6;2454:15;;;;;;;;;;;;;;;;;;;;;;;;;2432:7;:19;2440:10;2432:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2497:1;2479:7;:15;2487:6;2479:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2031:474;;:::o;4141:751:7:-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4324:1:7;4312:8;:13;;;;:44;;;;;337:3;4329:27;;:8;:27;;;;4312:44;4304:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4469:1;4449:6;:16;4456:8;4449:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4441:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4615:1;4603:8;:13;;;;:44;;;;;337:3;4620:27;;:8;:27;;;;4603:44;4595:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4721:8;4700:29;;:6;:17;4707:9;4700:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4692:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4801:6;:16;4808:8;4801:16;;;;;;;;;;;;;;;;;;;;;;;;;4782:6;:16;4789:8;4782:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4847:8;4827:6;:17;4834:9;4827:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4884:1;4865:6;:16;4872:8;4865:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4141:751;;;:::o;5484:120::-;5553:5;5587:9;;5574:23;;5484:120;:::o;453:40:6:-;;;;;;;;;;;;;;;;;;;;:::o;3276:548::-;3407:12;3678:19;3452;3439:32;;;;;;;;:9;:32;;;;;;;;;3435:383;;;3495:35;3507:2;3511:5;3518:4;3524:5;3495:11;:35::i;:::-;3485:45;;3435:383;;;3562:27;3549:40;;;;;;;;:9;:40;;;;;;;;;3545:273;;;3613:36;3633:2;3637:4;3643:5;3613:19;:36::i;:::-;3603:46;;3545:273;;;3700:19;3714:4;3700:13;:19::i;:::-;3678:41;;3758:1;3743:11;:16;;;;3733:26;;3778:29;3795:11;3778:29;;;;;;;;;;;;;;;;;;;;;;3545:273;3435:383;3276:548;;;;;;;;:::o;643:1208:7:-;1247:20;1300:9;1399:13;877:1;864:9;;:14;856:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1020:7;:14;1006:10;:28;;;;998:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1158:1;1144:10;:15;;;;1136:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:3;1247:38;;1312:1;1300:13;;1295:433;1319:7;:14;1315:1;:18;1295:433;;;1415:7;1423:1;1415:10;;;;;;;;;;;;;;;;;;1399:26;;1456:1;1447:5;:10;;;;:38;;;;;337:3;1461:24;;:5;:24;;;;1447:38;1439:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1603:1;1586:6;:13;1593:5;1586:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1578:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1678:5;1655:6;:20;1662:12;1655:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1712:5;1697:20;;1335:3;;;;;;;1295:433;;;337:3;1737:6;:20;1744:12;1737:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1798:7;:14;1785:10;:27;;;;1834:10;1822:22;;:9;:22;;;;643:1208;;;;;:::o;735:409:6:-;849:1;820:7;:25;550:3;820:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;812:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;550:3;902:7;:25;550:3;902:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;966:1;960:2;:7;;;;956:181;;;1061:40;1081:2;1085:4;1091:9;1061:19;:40::i;:::-;1053:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;956:181;735:409;;:::o;3830:309::-;3939:12;4121:1;4118;4111:4;4105:11;4098:4;4092;4088:15;4081:5;4077:2;4070:5;4065:58;4054:69;;4040:93;;;;;;:::o;4145:303::-;4247:12;4430:1;4427;4420:4;4414:11;4407:4;4401;4397:15;4393:2;4386:5;4373:59;4362:70;;4348:94;;;;;:::o;4454:261::-;4523:19;4693:4;4687:11;4680:4;4674;4670:15;4667:1;4660:39;4645:54;;4631: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", + "bytecode": "0x608060405234801561001057600080fd5b50612fd6806100206000396000f3006080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100e85780630ec78d9e146101355780632f54bf6e1461020b578063468721a714610266578063610b59251461031e578063694e80c31461036157806385e332cd1461038e5780638cff6355146103e5578063a0e67e2b1461043c578063a3f4df7e146104a8578063b2494df314610538578063e009cfde146105a4578063e318b52b14610607578063e75235b81461068a578063f8dc5dd9146106b5578063ffa1ad7414610722575b005b3480156100f457600080fd5b50610133600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107b2565b005b34801561014157600080fd5b506102096004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610bb8565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bd2565b604051808215151515815260200191505060405180910390f35b34801561027257600080fd5b50610304600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610c54565b604051808215151515815260200191505060405180910390f35b34801561032a57600080fd5b5061035f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d7f565b005b34801561036d57600080fd5b5061038c60048036038101908080359060200190929190505050611159565b005b34801561039a57600080fd5b506103a361136b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103f157600080fd5b506103fa611370565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044857600080fd5b50610451611375565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610494578082015181840152602081019050610479565b505050509050019250505060405180910390f35b3480156104b457600080fd5b506104bd611510565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104fd5780820151818401526020810190506104e2565b50505050905090810190601f16801561052a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561054457600080fd5b5061054d611549565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610590578082015181840152602081019050610575565b505050509050019250505060405180910390f35b3480156105b057600080fd5b50610605600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117ec565b005b34801561061357600080fd5b50610688600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c01565b005b34801561069657600080fd5b5061069f61224e565b6040518082815260200191505060405180910390f35b3480156106c157600080fd5b50610720600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612258565b005b34801561072e57600080fd5b5061073761273d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561077757808201518184015260208101905061075c565b50505050905090810190601f1680156107a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561087b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156108cf5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060026000815480929190600101919050555080600354141515610bb457610bb381611159565b5b5050565b610bc28484612776565b610bcc8282612c35565b50505050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610d68576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610d75858585855a612e6b565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610e9c5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610f10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610ffc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60025481111515156112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611361576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060038190555050565b600181565b600181565b6060806000806002546040519080825280602002602001820160405280156113ac5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156115075780838381518110151561145c57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611417565b82935050505090565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561165b576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506115b7565b8260405190808252806020026020018201604052801561168a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156117e35781818481518110151561173957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506116f4565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156119095750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611aa4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611d1e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611d92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611e7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611ed35750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611f47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561206f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160025403101515156123c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156124185750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561248c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156125b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060026000815480929190600190039190505550806003541415156127385761273781611159565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000806003541415156127f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515612893576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515612932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015612ba157848281518110151561295257fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141580156129b25750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612a26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612b13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550809250818060010192505061293b565b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600281905550836003819055505050505050565b6000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612d48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515612e6757612df282825a612f68565b1515612e66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060006002811115612e7b57fe5b846002811115612e8757fe5b1415612ea057612e9987878786612f7f565b9150612f5e565b60016002811115612ead57fe5b846002811115612eb957fe5b1415612ed157612eca878685612f68565b9150612f5d565b612eda85612f98565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008451602086018786f490509392505050565b6000806000845160208601878987f19050949350505050565b60008151602083016000f090509190505600a165627a7a72305820185229e665ad79a5dd08f65fba0b9c14bbf98145167f3cc26543abb51bc9fb7b0029", + "deployedBytecode": "0x6080604052600436106100e6576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100e85780630ec78d9e146101355780632f54bf6e1461020b578063468721a714610266578063610b59251461031e578063694e80c31461036157806385e332cd1461038e5780638cff6355146103e5578063a0e67e2b1461043c578063a3f4df7e146104a8578063b2494df314610538578063e009cfde146105a4578063e318b52b14610607578063e75235b81461068a578063f8dc5dd9146106b5578063ffa1ad7414610722575b005b3480156100f457600080fd5b50610133600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107b2565b005b34801561014157600080fd5b506102096004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610bb8565b005b34801561021757600080fd5b5061024c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bd2565b604051808215151515815260200191505060405180910390f35b34801561027257600080fd5b50610304600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050610c54565b604051808215151515815260200191505060405180910390f35b34801561032a57600080fd5b5061035f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d7f565b005b34801561036d57600080fd5b5061038c60048036038101908080359060200190929190505050611159565b005b34801561039a57600080fd5b506103a361136b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103f157600080fd5b506103fa611370565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561044857600080fd5b50610451611375565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610494578082015181840152602081019050610479565b505050509050019250505060405180910390f35b3480156104b457600080fd5b506104bd611510565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104fd5780820151818401526020810190506104e2565b50505050905090810190601f16801561052a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561054457600080fd5b5061054d611549565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610590578082015181840152602081019050610575565b505050509050019250505060405180910390f35b3480156105b057600080fd5b50610605600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117ec565b005b34801561061357600080fd5b50610688600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c01565b005b34801561069657600080fd5b5061069f61224e565b6040518082815260200191505060405180910390f35b3480156106c157600080fd5b50610720600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612258565b005b34801561072e57600080fd5b5061073761273d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561077757808201518184015260208101905061075c565b50505050905090810190601f1680156107a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561087b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156108cf5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610a30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060026000815480929190600101919050555080600354141515610bb457610bb381611159565b5b5050565b610bc28484612776565b610bcc8282612c35565b50505050565b600080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610d68576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b610d75858585855a612e6b565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610e48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610e9c5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610f10576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610ffc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611222576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60025481111515156112c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611361576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060038190555050565b600181565b600181565b6060806000806002546040519080825280602002602001820160405280156113ac5781602001602082028038833980820191505090505b5092506000915060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415156115075780838381518110151561145c57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611417565b82935050505090565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561165b576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506115b7565b8260405190808252806020026020018201604052801561168a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156117e35781818481518110151561173957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16915082806001019350506116f4565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118b5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156119095750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611aa4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611cca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015611d1e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611d92576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611e7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611ed35750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611f47576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561206f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600354905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160025403101515156123c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156124185750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561248c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156125b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060026000815480929190600190039190505550806003541415156127385761273781611159565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000806003541415156127f4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518411151515612893576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515612932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015612ba157848281518110151561295257fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141580156129b25750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612a26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612b13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550809250818060010192505061293b565b60018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600281905550836003819055505050505050565b6000806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612d48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515612e6757612df282825a612f68565b1515612e66576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060006002811115612e7b57fe5b846002811115612e8757fe5b1415612ea057612e9987878786612f7f565b9150612f5e565b60016002811115612ead57fe5b846002811115612eb957fe5b1415612ed157612eca878685612f68565b9150612f5d565b612eda85612f98565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008451602086018786f490509392505050565b6000806000845160208601878987f19050949350505050565b60008151602083016000f090509190505600a165627a7a72305820185229e665ad79a5dd08f65fba0b9c14bbf98145167f3cc26543abb51bc9fb7b0029", + "sourceMap": "322:676:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;322:676:2;;;;;;;", + "deployedSourceMap": "322:676:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2093:595:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;693:303:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;693:303:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5613:129:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5613:129:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2841:429:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2841:429:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:459:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;5087:399:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5087:399:9;;;;;;;;;;;;;;;;;;;;;;;;;;499:55:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:55:8;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:9;;;;;;;;;;;;;;;;;;;;;;;;;;;5824:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5824: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;5824: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4794:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4794: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;4794:738:8;;;;;;;;;;;;;;;;;2031:474;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2031:474:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4147:751:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4147:751:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:115:9;;;;;;;;;;;;;;;;;;;;;;;3030:783;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3030:783: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:9;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:1:9;2256:5;:10;;;;:38;;;;;337:3;2270:24;;:5;:24;;;;2256:38;2248:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:1;2387:6;:13;2394:5;2387:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2379:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2463:6;:23;337:3;2463:23;;;;;;;;;;;;;;;;;;;;;;;;;2447:6;:13;2454:5;2447:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2522:5;2496:6;:23;337:3;2496:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2537:10;;:12;;;;;;;;;;;;;2630:10;2617:9;;:23;;2613:68;;;2654:27;2670:10;2654:15;:27::i;:::-;2613:68;2093:595;;:::o;693:303:2:-;800:32;812:7;821:10;800:11;:32::i;:::-;967:22;980:2;984:4;967:12;:22::i;:::-;693:303;;;;:::o;5613:129:9:-;5690:4;5734:1;5717:6;:13;5724:5;5717:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5710:25;;5613:129;;;:::o;2841:429:8:-;2973:12;3081:1;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;3050:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3217:46;3225:2;3229:5;3236:4;3242:9;3253;3217:7;:46::i;:::-;3207:56;;2841:429;;;;;;:::o;1311:459::-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1477:1:8;1466:6;1458:20;;;;:59;;;;;550:3;1482:35;;1490:6;1482:35;;;;1458:59;1450:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:1;1612:7;:15;1620:6;1612:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1604:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:7;:25;550:3;1694:25;;;;;;;;;;;;;;;;;;;;;;;;;1676:7;:15;1684:6;1676:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1757:6;1729:7;:25;550:3;1729:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1311:459;:::o;5087:399:9:-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5271:10:9;;5257;:24;;5249:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5405:1;5391:10;:15;;5383:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:10;5457:9;:22;;;;5087:399;:::o;499:55:8:-;550:3;499:55;:::o;287:54:9:-;337:3;287:54;:::o;5824:458::-;5890:9;5915:22;6009:13;6036:20;5954:10;;5940: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;5940:25:9;;;;5915:50;;6025:1;6009:17;;6059:6;:23;337:3;6059:23;;;;;;;;;;;;;;;;;;;;;;;;;6036:46;;6092:162;337:3;6098:31;;:12;:31;;;;6092:162;;;6160:12;6145:5;6151;6145:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6201:6;:20;6208:12;6201:20;;;;;;;;;;;;;;;;;;;;;;;;;6186:35;;6235:8;;;;;;;6092:162;;;6270:5;6263:12;;5824:458;;;;:::o;401:46:8:-;;;;;;;;;;;;;;;;;;;;:::o;4794:738::-;4861:9;4920:19;4953:21;5153:22;4942:1;4920:23;;4977:7;:25;550:3;4977:25;;;;;;;;;;;;;;;;;;;;;;;;;4953:49;;5012:132;550:3;5018:33;;:13;:33;;;;5012:132;;;5083:7;:22;5091:13;5083:22;;;;;;;;;;;;;;;;;;;;;;;;;5067:38;;5119:14;;;;;;;5012:132;;;5192:11;5178: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;5178:26:8;;;;5153:51;;5262:1;5248:15;;5289:7;:25;550:3;5289:25;;;;;;;;;;;;;;;;;;;;;;;;;5273:41;;5324:180;550:3;5330:33;;:13;:33;;;;5324:180;;;5400:13;5379:5;5385:11;5379:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5443:7;:22;5451:13;5443:22;;;;;;;;;;;;;;;;;;;;;;;;;5427:38;;5479:14;;;;;;;5324:180;;;5520:5;5513:12;;4794:738;;;;:::o;2031:474::-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:1:8;2234:6;2226:20;;;;:59;;;;;550:3;2250:35;;2258:6;2250:35;;;;2226:59;2218:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2370:6;2339:38;;:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2331:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2454:7;:15;2462:6;2454:15;;;;;;;;;;;;;;;;;;;;;;;;;2432:7;:19;2440:10;2432:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2497:1;2479:7;:15;2487:6;2479:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2031:474;;:::o;4147:751:9:-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:1:9;4318:8;:13;;;;:44;;;;;337:3;4335:27;;:8;:27;;;;4318:44;4310:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4475:1;4455:6;:16;4462:8;4455:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4447:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4621:1;4609:8;:13;;;;:44;;;;;337:3;4626:27;;:8;:27;;;;4609:44;4601:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:8;4706:29;;:6;:17;4713:9;4706:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4698:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4807:6;:16;4814:8;4807:16;;;;;;;;;;;;;;;;;;;;;;;;;4788:6;:16;4795:8;4788:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4853:8;4833:6;:17;4840:9;4833:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4890:1;4871:6;:16;4878:8;4871:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4147:751;;;:::o;5492:115::-;5561:7;5591:9;;5584:16;;5492:115;:::o;3030:783::-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3256:10:9;3251:1;3238:10;;:14;:28;;3230:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3431:1;3422:5;:10;;;;:38;;;;;337:3;3436:24;;:5;:24;;;;3422:38;3414:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3534:5;3513:26;;:6;:17;3520:9;3513:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3505:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:6;:13;3619:5;3612:13;;;;;;;;;;;;;;;;;;;;;;;;;3592:6;:17;3599:9;3592:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3651:1;3635:6;:13;3642:5;3635:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3662:10;;:12;;;;;;;;;;;;;;3755:10;3742:9;;:23;;3738:68;;;3779:27;3795:10;3779:15;:27::i;:::-;3738:68;3030:783;;;:::o;453:40:8:-;;;;;;;;;;;;;;;;;;;;:::o;643:1210:9:-;1249:20;1302:9;1401:13;879:1;866:9;;:14;858:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1022:7;:14;1008:10;:28;;1000:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:1;1146:10;:15;;1138:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:3;1249:38;;1314:1;1302:13;;1297:433;1321:7;:14;1317:1;:18;1297:433;;;1417:7;1425:1;1417:10;;;;;;;;;;;;;;;;;;1401:26;;1458:1;1449:5;:10;;;;:38;;;;;337:3;1463:24;;:5;:24;;;;1449:38;1441:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1605:1;1588:6;:13;1595:5;1588:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1580:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1680:5;1657:6;:20;1664:12;1657:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1714:5;1699:20;;1337:3;;;;;;;1297:433;;;337:3;1739:6;:20;1746:12;1739:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1800:7;:14;1787:10;:27;;;;1836:10;1824:9;:22;;;;643:1210;;;;;:::o;735:409:8:-;849:1;820:7;:25;550:3;820:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;812:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;550:3;902:7;:25;550:3;902:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;966:1;960:2;:7;;;;956:181;;;1061:40;1081:2;1085:4;1091:9;1061:19;:40::i;:::-;1053:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;956:181;735:409;;:::o;3276:548::-;3407:12;3678:19;3452;3439:32;;;;;;;;:9;:32;;;;;;;;;3435:383;;;3495:35;3507:2;3511:5;3518:4;3524:5;3495:11;:35::i;:::-;3485:45;;3435:383;;;3562:27;3549:40;;;;;;;;:9;:40;;;;;;;;;3545:273;;;3613:36;3633:2;3637:4;3643:5;3613:19;:36::i;:::-;3603:46;;3545:273;;;3700:19;3714:4;3700:13;:19::i;:::-;3678:41;;3758:1;3743:11;:16;;;;3733:26;;3778:29;3795:11;3778:29;;;;;;;;;;;;;;;;;;;;;;3545:273;3435:383;3276:548;;;;;;;;:::o;4145:303::-;4247:12;4430:1;4427;4420:4;4414:11;4407:4;4401;4397:15;4393:2;4386:5;4373:59;4362:70;;4348:94;;;;;:::o;3830:309::-;3939:12;4121:1;4118;4111:4;4105:11;4098:4;4092;4088:15;4081:5;4077:2;4070:5;4065:58;4054:69;;4040:93;;;;;;:::o;4454:261::-;4523:19;4693:4;4687:11;4680:4;4674;4670:15;4667:1;4660:39;4645:54;;4631: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, uint256 _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", ".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": 652, - "src": "24:22:1", + "scope": 64, + "sourceUnit": 733, + "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": 1023, - "src": "47:29:1", + "scope": 64, + "sourceUnit": 1104, + "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": 1433, - "src": "77:28:1", + "scope": 64, + "sourceUnit": 1512, + "src": "77:28:2", "symbolAliases": [], "unitAlias": "" }, @@ -366,62 +366,62 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 12, + "id": 36, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1022, - "src": "345:13:1", + "referencedDeclaration": 1103, + "src": "345:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "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": 1432, - "src": "360:12:1", + "referencedDeclaration": 1511, + "src": "360:12:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1432", + "typeIdentifier": "t_contract$_OwnerManager_$1511", "typeString": "contract OwnerManager" } }, - "id": 15, + "id": 39, "nodeType": "InheritanceSpecifier", - "src": "360:12:1" + "src": "360:12:2" } ], "contractDependencies": [ - 1022, - 1432, - 1449 + 1103, + 1511, + 1688 ], "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, - 1432, - 1022, - 1449 + 63, + 1511, + 1103, + 1688 ], "name": "GnosisSafe", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 37, + "id": 61, "nodeType": "Block", - "src": "788:206:1", + "src": "790: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": "812:7:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -442,15 +442,15 @@ }, { "argumentTypes": null, - "id": 29, + "id": 53, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "819:10:1", + "referencedDeclaration": 44, + "src": "821:10:2", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], @@ -461,22 +461,22 @@ "typeString": "address[] memory" }, { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 27, + "id": 51, "name": "setupOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1139, - "src": "798:11:1", + "referencedDeclaration": 1220, + "src": "800:11:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint8_$returns$__$", - "typeString": "function (address[] memory,uint8)" + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (address[] memory,uint256)" } }, - "id": 30, + "id": 54, "isConstant": false, "isLValue": false, "isPure": false, @@ -484,15 +484,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "798:32:1", + "src": "800:32:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 31, + "id": 55, "nodeType": "ExpressionStatement", - "src": "798:32:1" + "src": "800: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": "980: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": "984: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": 718, - "src": "965:12:1", + "referencedDeclaration": 799, + "src": "967: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": "967:22:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 36, + "id": 60, "nodeType": "ExpressionStatement", - "src": "965:22:1" + "src": "967: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,25 +617,25 @@ }, { "constant": false, - "id": 20, + "id": 44, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 38, - "src": "727:16:1", + "scope": 62, + "src": "727:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 19, - "name": "uint8", + "id": 43, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "727:5:1", + "src": "727:7:2", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, @@ -643,11 +643,11 @@ }, { "constant": false, - "id": 22, + "id": 46, "name": "to", "nodeType": "VariableDeclaration", - "scope": 38, - "src": "745:10:1", + "scope": 62, + "src": "747: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": "747: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": "759: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": "759:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -694,78 +694,78 @@ "visibility": "internal" } ], - "src": "707:61:1" + "src": "707:63:2" }, "payable": false, "returnParameters": { - "id": 26, + "id": 50, "nodeType": "ParameterList", "parameters": [], - "src": "788:0:1" + "src": "790:0:2" }, - "scope": 39, - "src": "693:301:1", + "scope": 63, + "src": "693:303:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 40, - "src": "322:674:1" + "scope": 64, + "src": "322:676:2" } ], - "src": "0:997:1" + "src": "0:999: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", ".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": 652, - "src": "24:22:1", + "scope": 64, + "sourceUnit": 733, + "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": 1023, - "src": "47:29:1", + "scope": 64, + "sourceUnit": 1104, + "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": 1433, - "src": "77:28:1", + "scope": 64, + "sourceUnit": 1512, + "src": "77:28:2", "symbolAliases": [], "unitAlias": "" }, @@ -775,62 +775,62 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 12, + "id": 36, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1022, - "src": "345:13:1", + "referencedDeclaration": 1103, + "src": "345:13:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "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": 1432, - "src": "360:12:1", + "referencedDeclaration": 1511, + "src": "360:12:2", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1432", + "typeIdentifier": "t_contract$_OwnerManager_$1511", "typeString": "contract OwnerManager" } }, - "id": 15, + "id": 39, "nodeType": "InheritanceSpecifier", - "src": "360:12:1" + "src": "360:12:2" } ], "contractDependencies": [ - 1022, - 1432, - 1449 + 1103, + 1511, + 1688 ], "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, - 1432, - 1022, - 1449 + 63, + 1511, + 1103, + 1688 ], "name": "GnosisSafe", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 37, + "id": 61, "nodeType": "Block", - "src": "788:206:1", + "src": "790: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": "812:7:2", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" @@ -851,15 +851,15 @@ }, { "argumentTypes": null, - "id": 29, + "id": 53, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 20, - "src": "819:10:1", + "referencedDeclaration": 44, + "src": "821:10:2", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], @@ -870,22 +870,22 @@ "typeString": "address[] memory" }, { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 27, + "id": 51, "name": "setupOwners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1139, - "src": "798:11:1", + "referencedDeclaration": 1220, + "src": "800:11:2", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint8_$returns$__$", - "typeString": "function (address[] memory,uint8)" + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (address[] memory,uint256)" } }, - "id": 30, + "id": 54, "isConstant": false, "isLValue": false, "isPure": false, @@ -893,15 +893,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "798:32:1", + "src": "800:32:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 31, + "id": 55, "nodeType": "ExpressionStatement", - "src": "798:32:1" + "src": "800: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": "980: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": "984: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": 718, - "src": "965:12:1", + "referencedDeclaration": 799, + "src": "967: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": "967:22:2", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 36, + "id": 60, "nodeType": "ExpressionStatement", - "src": "965:22:1" + "src": "967: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,25 +1026,25 @@ }, { "constant": false, - "id": 20, + "id": 44, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 38, - "src": "727:16:1", + "scope": 62, + "src": "727:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 19, - "name": "uint8", + "id": 43, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "727:5:1", + "src": "727:7:2", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, @@ -1052,11 +1052,11 @@ }, { "constant": false, - "id": 22, + "id": 46, "name": "to", "nodeType": "VariableDeclaration", - "scope": 38, - "src": "745:10:1", + "scope": 62, + "src": "747: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": "747: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": "759: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": "759:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1103,33 +1103,33 @@ "visibility": "internal" } ], - "src": "707:61:1" + "src": "707:63:2" }, "payable": false, "returnParameters": { - "id": 26, + "id": 50, "nodeType": "ParameterList", "parameters": [], - "src": "788:0:1" + "src": "790:0:2" }, - "scope": 39, - "src": "693:301:1", + "scope": 63, + "src": "693:303:2", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 40, - "src": "322:674:1" + "scope": 64, + "src": "322:676:2" } ], - "src": "0:997:1" + "src": "0:999:2" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-20T07:57:26.986Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:56.477Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/GnosisSafePersonalEdition.json b/safe-contracts/build/contracts/GnosisSafePersonalEdition.json index c1c5dc83..7040d24c 100644 --- a/safe-contracts/build/contracts/GnosisSafePersonalEdition.json +++ b/safe-contracts/build/contracts/GnosisSafePersonalEdition.json @@ -1,6 +1,50 @@ { "contractName": "GnosisSafePersonalEdition", "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "_threshold", + "type": "uint256" + } + ], + "name": "addOwnerWithThreshold", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_owners", + "type": "address[]" + }, + { + "name": "_threshold", + "type": "uint256" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "setup", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [ @@ -66,30 +110,17 @@ "type": "function" }, { - "constant": true, + "constant": false, "inputs": [ { - "name": "txHash", - "type": "bytes32" - }, - { - "name": "messageSignature", - "type": "bytes" - }, - { - "name": "pos", + "name": "_threshold", "type": "uint256" } ], - "name": "recoverKey", - "outputs": [ - { - "name": "", - "type": "address" - } - ], + "name": "changeThreshold", + "outputs": [], "payable": false, - "stateMutability": "pure", + "stateMutability": "nonpayable", "type": "function" }, { @@ -120,28 +151,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint8" - } - ], - "name": "removeOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": true, "inputs": [], @@ -156,32 +165,6 @@ "stateMutability": "view", "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": [], @@ -238,69 +221,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "_threshold", - "type": "uint8" - } - ], - "name": "changeThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "signatures", - "type": "bytes" - }, - { - "name": "pos", - "type": "uint256" - } - ], - "name": "signatureSplit", - "outputs": [ - { - "name": "v", - "type": "uint8" - }, - { - "name": "r", - "type": "bytes32" - }, - { - "name": "s", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint8" - } - ], - "name": "addOwnerWithThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": false, "inputs": [ @@ -348,13 +268,35 @@ "outputs": [ { "name": "", - "type": "uint8" + "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "prevOwner", + "type": "address" + }, + { + "name": "owner", + "type": "address" + }, + { + "name": "_threshold", + "type": "uint256" + } + ], + "name": "removeOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], @@ -532,73 +474,73 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b5061422d806100206000396000f300608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806309529334146101355780632f54bf6e14610271578063468721a7146102cc578063610b59251461038457806363f44b59146103c75780637de7edef1461048857806385e332cd146104cb57806386040aa9146105225780638cff635514610592578063a04222e1146105e9578063a0e67e2b146106c2578063a3f4df7e1461072e578063affed0e0146107be578063b2494df3146107e9578063b7f3358d14610855578063b817dcc214610885578063b91a667f14610930578063ba08ea2414610980578063c4ca3a9c14610a84578063e009cfde14610b38578063e318b52b14610b9b578063e75235b814610c1e578063ffa1ad7414610c4f575b005b34801561014157600080fd5b50610257600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610cdf565b604051808215151515815260200191505060405180910390f35b34801561027d57600080fd5b506102b2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110b8565b604051808215151515815260200191505060405180910390f35b3480156102d857600080fd5b5061036a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919050505061113a565b604051808215151515815260200191505060405180910390f35b34801561039057600080fd5b506103c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611266565b005b3480156103d357600080fd5b506104466004803603810190808035600019169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050611644565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561049457600080fd5b506104c9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116ed565b005b3480156104d757600080fd5b506104e06118ae565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561052e57600080fd5b50610590600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506118b3565b005b34801561059e57600080fd5b506105a7611d9e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105f557600080fd5b506106c060048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611da3565b005b3480156106ce57600080fd5b506106d7611dbd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561071a5780820151818401526020810190506106ff565b505050509050019250505060405180910390f35b34801561073a57600080fd5b50610743611f58565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610783578082015181840152602081019050610768565b50505050905090810190601f1680156107b05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107ca57600080fd5b506107d3611f91565b6040518082815260200191505060405180910390f35b3480156107f557600080fd5b506107fe611f97565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610841578082015181840152602081019050610826565b505050509050019250505060405180910390f35b34801561086157600080fd5b50610883600480360381019080803560ff16906020019092919050505061223e565b005b34801561089157600080fd5b506108f6600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050612459565b604051808460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001935050505060405180910390f35b34801561093c57600080fd5b5061097e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050612488565b005b34801561098c57600080fd5b50610a66600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612891565b60405180826000191660001916815260200191505060405180910390f35b348015610a9057600080fd5b50610b22600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050612b78565b6040518082815260200191505060405180910390f35b348015610b4457600080fd5b50610b99600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d27565b005b348015610ba757600080fd5b50610c1c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613140565b005b348015610c2a57600080fd5b50610c3361378d565b604051808260ff1660ff16815260200191505060405180910390f35b348015610c5b57600080fd5b50610c64613797565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ca4578082015181840152602081019050610c89565b50505050905090810190601f168015610cd15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008060008060005a9350610cfd8e8e8e8e8e8e8e8e600554612891565b9250610d0983876137d0565b600560008154809291906001019190505550895a10151515610db9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f7420656e6f7567682067617320746f20657865637574652073616665207481526020017f72616e73616374696f6e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610dc68e8e8e8e8e6139c2565b9450841515610e0f577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c8360405180826000191660001916815260200191505060405180910390a15b60008811156110a757885a85030191508782029050600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610f2d573273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610f28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f73747320776974682065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6110a6565b8673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb32836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610fd057600080fd5b505af1158015610fe4573d6000803e3d6000fd5b505050506040513d6020811015610ffa57600080fd5b810190808051906020019092919050505015156110a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f737473207769746820746f6b81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b5b505050509998505050505050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561124f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b61125c858585855a6139c2565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561132f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156113835750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156113f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156114e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000806116548686612459565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af11580156116d7573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561186b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ff1660016003540310151515611a22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611a765750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611aea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611c12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060ff16600454141515611d9957611d988161223e565b5b505050565b600181565b611dad8484613abf565b611db78282613f88565b50505050565b606080600080600354604051908082528060200260200182016040528015611df45781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611f4f57808383815181101515611ea457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611e5f565b82935050505090565b6040805190810160405280601c81526020017f476e6f736973205361666520506572736f6e616c2045646974696f6e0000000081525081565b60055481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156120ab57600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612006565b826040519080825280602002602001820160405280156120da5781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156122355781818481518110151561218a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612145565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612307576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548160ff16111515156123aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018160ff161015151561244c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ff1660048190555050565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156125a55750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612706576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060ff1660045414151561288d5761288c8161223e565b5b5050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f010000000000000000000000000000000000000000000000000000000000000002308c8c8c8c8c8c8c8c8c604051602001808d7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189815260200188805190602001908083835b602083101515612a395780518252602082019150602081019050602083039250612a14565b6001836020036101000a038019825116818451168082178552505050505050905001876002811115612a6757fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018281526020019c505050505050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515612b3c5780518252602082019150602081019050602083039250612b17565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509998505050505050505050565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b5a9150612c56878787875a6139c2565b1515612c6157600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612cec578082015181840152602081019050612cd1565b50505050905090810190601f168015612d195780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612df0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015612e445750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612eb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612fe0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561325d5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156132d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156133be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156134125750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515613486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156135ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600454905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000809250600090505b6004548110156139bb576137f2858583611644565b91506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156138e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161115156139ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b81925080806001019150506137dd565b5050505050565b600080600060028111156139d257fe5b8460028111156139de57fe5b14156139f7576139f0878787866141bf565b9150613ab5565b60016002811115613a0457fe5b846002811115613a1057fe5b1415613a2857613a218786856141d8565b9150613ab4565b613a31856141ef565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600080600080600454141515613b3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518460ff1611151515613bdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018460ff1610151515613c81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015613ef0578482815181101515613ca157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015613d015750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515613d75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613e62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050613c8a565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084516003819055508360ff166004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561409c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff161415156141bb5761414682825a6141d8565b15156141ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a7230582040746efbba11d2b2a6cb2765acef4d46e0c586ec4ba25941eee03135cebf9ca80029", - "deployedBytecode": "0x608060405260043610610133576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806309529334146101355780632f54bf6e14610271578063468721a7146102cc578063610b59251461038457806363f44b59146103c75780637de7edef1461048857806385e332cd146104cb57806386040aa9146105225780638cff635514610592578063a04222e1146105e9578063a0e67e2b146106c2578063a3f4df7e1461072e578063affed0e0146107be578063b2494df3146107e9578063b7f3358d14610855578063b817dcc214610885578063b91a667f14610930578063ba08ea2414610980578063c4ca3a9c14610a84578063e009cfde14610b38578063e318b52b14610b9b578063e75235b814610c1e578063ffa1ad7414610c4f575b005b34801561014157600080fd5b50610257600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610cdf565b604051808215151515815260200191505060405180910390f35b34801561027d57600080fd5b506102b2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110b8565b604051808215151515815260200191505060405180910390f35b3480156102d857600080fd5b5061036a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919050505061113a565b604051808215151515815260200191505060405180910390f35b34801561039057600080fd5b506103c5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611266565b005b3480156103d357600080fd5b506104466004803603810190808035600019169060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050611644565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561049457600080fd5b506104c9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116ed565b005b3480156104d757600080fd5b506104e06118ae565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561052e57600080fd5b50610590600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506118b3565b005b34801561059e57600080fd5b506105a7611d9e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105f557600080fd5b506106c060048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611da3565b005b3480156106ce57600080fd5b506106d7611dbd565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561071a5780820151818401526020810190506106ff565b505050509050019250505060405180910390f35b34801561073a57600080fd5b50610743611f58565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610783578082015181840152602081019050610768565b50505050905090810190601f1680156107b05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107ca57600080fd5b506107d3611f91565b6040518082815260200191505060405180910390f35b3480156107f557600080fd5b506107fe611f97565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610841578082015181840152602081019050610826565b505050509050019250505060405180910390f35b34801561086157600080fd5b50610883600480360381019080803560ff16906020019092919050505061223e565b005b34801561089157600080fd5b506108f6600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050612459565b604051808460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001935050505060405180910390f35b34801561093c57600080fd5b5061097e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050612488565b005b34801561098c57600080fd5b50610a66600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612891565b60405180826000191660001916815260200191505060405180910390f35b348015610a9057600080fd5b50610b22600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050612b78565b6040518082815260200191505060405180910390f35b348015610b4457600080fd5b50610b99600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d27565b005b348015610ba757600080fd5b50610c1c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613140565b005b348015610c2a57600080fd5b50610c3361378d565b604051808260ff1660ff16815260200191505060405180910390f35b348015610c5b57600080fd5b50610c64613797565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ca4578082015181840152602081019050610c89565b50505050905090810190601f168015610cd15780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008060008060005a9350610cfd8e8e8e8e8e8e8e8e600554612891565b9250610d0983876137d0565b600560008154809291906001019190505550895a10151515610db9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f7420656e6f7567682067617320746f20657865637574652073616665207481526020017f72616e73616374696f6e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610dc68e8e8e8e8e6139c2565b9450841515610e0f577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c8360405180826000191660001916815260200191505060405180910390a15b60008811156110a757885a85030191508782029050600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610f2d573273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610f28576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f73747320776974682065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6110a6565b8673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb32836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015610fd057600080fd5b505af1158015610fe4573d6000803e3d6000fd5b505050506040513d6020811015610ffa57600080fd5b810190808051906020019092919050505015156110a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f737473207769746820746f6b81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b5b505050509998505050505050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561124f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b61125c858585855a6139c2565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561132f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156113835750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156113f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156114e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000806116548686612459565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af11580156116d7573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117b6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561186b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561197c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ff1660016003540310151515611a22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611a765750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611aea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611c12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060ff16600454141515611d9957611d988161223e565b5b505050565b600181565b611dad8484613abf565b611db78282613f88565b50505050565b606080600080600354604051908082528060200260200182016040528015611df45781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611f4f57808383815181101515611ea457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611e5f565b82935050505090565b6040805190810160405280601c81526020017f476e6f736973205361666520506572736f6e616c2045646974696f6e0000000081525081565b60055481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156120ab57600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612006565b826040519080825280602002602001820160405280156120da5781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156122355781818481518110151561218a57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612145565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612307576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548160ff16111515156123aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018160ff161015151561244c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ff1660048190555050565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612551576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156125a55750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612706576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060ff1660045414151561288d5761288c8161223e565b5b5050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f010000000000000000000000000000000000000000000000000000000000000002308c8c8c8c8c8c8c8c8c604051602001808d7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189815260200188805190602001908083835b602083101515612a395780518252602082019150602081019050602083039250612a14565b6001836020036101000a038019825116818451168082178552505050505050905001876002811115612a6757fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018281526020019c505050505050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515612b3c5780518252602082019150602081019050602083039250612b17565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509998505050505050505050565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612c46576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b5a9150612c56878787875a6139c2565b1515612c6157600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612cec578082015181840152602081019050612cd1565b50505050905090810190601f168015612d195780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612df0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015612e445750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612eb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612fe0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613209576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561325d5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156132d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156133be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156134125750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515613486576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156135ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600454905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000809250600090505b6004548110156139bb576137f2858583611644565b91506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156138e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161115156139ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b81925080806001019150506137dd565b5050505050565b600080600060028111156139d257fe5b8460028111156139de57fe5b14156139f7576139f0878787866141bf565b9150613ab5565b60016002811115613a0457fe5b846002811115613a1057fe5b1415613a2857613a218786856141d8565b9150613ab4565b613a31856141ef565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600080600080600454141515613b3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518460ff1611151515613bdf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018460ff1610151515613c81576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015613ef0578482815181101515613ca157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015613d015750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515613d75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613e62576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050613c8a565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084516003819055508360ff166004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561409c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff161415156141bb5761414682825a6141d8565b15156141ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a7230582040746efbba11d2b2a6cb2765acef4d46e0c586ec4ba25941eee03135cebf9ca80029", - "sourceMap": "484:5887:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;484:5887:2;;;;;;;", - "deployedSourceMap": "484:5887:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:1551;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1656:1551:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5610:129:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5610:129:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2841:429:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2841:429:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:459:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:328:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;477:328:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:55:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:55:6;;;;;;;;;;;;;;;;;;;;;;;;;;;3026:781:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3026:781: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5821:458:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5821: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;5821:458:7;;;;;;;;;;;;;;;;;572:60:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;572: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;572:60:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;733:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;733:20:2;;;;;;;;;;;;;;;;;;;;;;;4794:738:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4794: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;4794:738:6;;;;;;;;;;;;;;;;;5081:397:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5081:397:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;982:912:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;982:912:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2091:593:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2091:593:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5869:500:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5869:500:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4134:523;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4134:523:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:474:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2031:474:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4141:751:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4141:751:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5484:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5484:120:7;;;;;;;;;;;;;;;;;;;;;;;;;;;638:40:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;638: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;638:40:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:1551;1965:12;1993:16;2031:14;2659:16;2724:14;2012:9;1993:28;;2048:93;2067:2;2071:5;2078:4;2084:9;2095;2106:7;2115:8;2125;2135:5;;2048:18;:93::i;:::-;2031:110;;2151:29;2161:6;2169:10;2151:9;:29::i;:::-;2241:5;;:7;;;;;;;;;;;;;2279:9;2266;:22;;2258:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2355:46;2363:2;2367:5;2374:4;2380:9;2391;2355:7;:46::i;:::-;2345:56;;2416:7;2415:8;2411:67;;;2444:23;2460:6;2444:23;;;;;;;;;;;;;;;;;;;;;;;;2411:67;2642:1;2631:8;:12;2627:572;;;2703:7;2690:9;2679:8;:20;2678:32;2659:51;;2752:8;2741;:19;2724:36;;2798:1;2778:22;;:8;:22;;;2774:415;;;2912:9;:14;;:22;2927:6;2912:22;;;;;;;;;;;;;;;;;;;;;;;2904:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2774:415;;;3098:8;3087:29;;;3117:9;3128:6;3087:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3087:48:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3087:48:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3087:48:2;;;;;;;;;;;;;;;;3079:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2774:415;2627:572;1656:1551;;;;;;;;;;;;;;;:::o;5610:129:7:-;5687:4;5731:1;5714:6;:13;5721:5;5714:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5707:25;;5610:129;;;:::o;2841:429:6:-;2973:12;3081:1;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;3050:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3217:46;3225:2;3229:5;3236:4;3242:9;3253;3217:7;:46::i;:::-;3207:56;;2841:429;;;;;;:::o;1311:459::-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1477:1:6;1466:6;1458:20;;;;:59;;;;;550:3;1482:35;;1490:6;1482:35;;;;1458:59;1450:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:1;1612:7;:15;1620:6;1612:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1604:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:7;:25;550:3;1694:25;;;;;;;;;;;;;;;;;;;;;;;;;1676:7;:15;1684:6;1676:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1757:6;1729:7;:25;550:3;1729:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1311:459;:::o;477:328:9:-;627:7;651;668:9;687;718:37;733:16;751:3;718:14;:37::i;:::-;706:49;;;;;;;;;;;;772:26;782:6;790:1;793;796;772:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;772:26:9;;;;;;;;765:33;;477:328;;;;;;;;:::o;626:248:4:-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:4;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;499:55:6:-;550:3;499:55;:::o;3026:781:7:-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3250:10:7;3232:28;;3245:1;3232:10;;:14;:28;;3224:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3425:1;3416:5;:10;;;;:38;;;;;337:3;3430:24;;:5;:24;;;;3416:38;3408:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3528:5;3507:26;;:6;:17;3514:9;3507:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3499:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3606:6;:13;3613:5;3606:13;;;;;;;;;;;;;;;;;;;;;;;;;3586:6;:17;3593:9;3586:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3645:1;3629:6;:13;3636:5;3629:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3656:10;;:12;;;;;;;;;;;;;;3749:10;3736:23;;:9;;:23;;3732:68;;;3773:27;3789:10;3773:15;:27::i;:::-;3732:68;3026:781;;;:::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;5821:458:7:-;5887:9;5912:22;6006:13;6033:20;5951:10;;5937: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;5937:25:7;;;;5912:50;;6022:1;6006:17;;6056:6;:23;337:3;6056:23;;;;;;;;;;;;;;;;;;;;;;;;;6033:46;;6089:162;337:3;6095:31;;:12;:31;;;;6089:162;;;6157:12;6142:5;6148;6142:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6198:6;:20;6205:12;6198:20;;;;;;;;;;;;;;;;;;;;;;;;;6183:35;;6232:8;;;;;;;6089:162;;;6267:5;6260:12;;5821:458;;;;:::o;572:60:2:-;;;;;;;;;;;;;;;;;;;;:::o;733:20::-;;;;:::o;4794:738:6:-;4861:9;4920:19;4953:21;5153:22;4942:1;4920:23;;4977:7;:25;550:3;4977:25;;;;;;;;;;;;;;;;;;;;;;;;;4953:49;;5012:132;550:3;5018:33;;:13;:33;;;;5012:132;;;5083:7;:22;5091:13;5083:22;;;;;;;;;;;;;;;;;;;;;;;;;5067:38;;5119:14;;;;;;;5012:132;;;5192:11;5178: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;5178:26:6;;;;5153:51;;5262:1;5248:15;;5289:7;:25;550:3;5289:25;;;;;;;;;;;;;;;;;;;;;;;;;5273:41;;5324:180;550:3;5330:33;;:13;:33;;;;5324:180;;;5400:13;5379:5;5385:11;5379:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5443:7;:22;5451:13;5443:22;;;;;;;;;;;;;;;;;;;;;;;;;5427:38;;5479:14;;;;;;;5324:180;;;5520:5;5513:12;;4794:738;;;;:::o;5081:397:7:-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5263:10:7;;5249;:24;;;;5241:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5397:1;5383:10;:15;;;;5375:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5461:10;5449:22;;:9;:22;;;;5081:397;:::o;982:912:9:-;1082:7;1091:9;1102;1402:3;1396:4;1392:14;1464:4;1450:12;1446:23;1434:10;1430:40;1424:47;1419:52;;1529:4;1515:12;1511:23;1499:10;1495:40;1489:47;1484:52;;1873:4;1864;1850:12;1846:23;1834:10;1830:40;1824:47;1820:58;1815:63;;1358:530;;;;;;:::o;2091:593:7:-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2261:1:7;2252:5;:10;;;;:38;;;;;337:3;2266:24;;:5;:24;;;;2252:38;2244:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2400:1;2383:6;:13;2390:5;2383:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2375:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2459:6;:23;337:3;2459:23;;;;;;;;;;;;;;;;;;;;;;;;;2443:6;:13;2450:5;2443:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2518:5;2492:6;:23;337:3;2492:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2533:10;;:12;;;;;;;;;;;;;2626:10;2613:23;;:9;;:23;;2609:68;;;2650:27;2666:10;2650:15;:27::i;:::-;2609:68;2091:593;;:::o;5869:500:2:-;6180:7;6255:4;6250:10;;6267:1;6262:7;;6271:4;6277:2;6281:5;6288:4;6294:9;6305;6316:7;6325:8;6335;6345:6;6233: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;;;6233:119:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6233:119:2;;;6210: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;;;6210:152:2;;;;;;;;;;;;;;;;6203:159;;5869:500;;;;;;;;;;;:::o;4134:523::-;4273:7;4296:16;4486:19;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4315:9:2;4296:28;;4429:46;4437:2;4441:5;4448:4;4454:9;4465;4429:7;:46::i;:::-;4421:55;;;;;;;;4519:9;4508:8;:20;4486:42;;4636:11;4619:29;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4619:29:2;;;4605: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;4605:45:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:474:6;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:1:6;2234:6;2226:20;;;;:59;;;;;550:3;2250:35;;2258:6;2250:35;;;;2226:59;2218:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2370:6;2339:38;;:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2331:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2454:7;:15;2462:6;2454:15;;;;;;;;;;;;;;;;;;;;;;;;;2432:7;:19;2440:10;2432:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2497:1;2479:7;:15;2487:6;2479:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2031:474;;:::o;4141:751:7:-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4324:1:7;4312:8;:13;;;;:44;;;;;337:3;4329:27;;:8;:27;;;;4312:44;4304:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4469:1;4449:6;:16;4456:8;4449:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4441:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4615:1;4603:8;:13;;;;:44;;;;;337:3;4620:27;;:8;:27;;;;4603:44;4595:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4721:8;4700:29;;:6;:17;4707:9;4700:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4692:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4801:6;:16;4808:8;4801:16;;;;;;;;;;;;;;;;;;;;;;;;;4782:6;:16;4789:8;4782:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4847:8;4827:6;:17;4834:9;4827:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4884:1;4865:6;:16;4872:8;4865:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4141:751;;;:::o;5484:120::-;5553:5;5587:9;;5574:23;;5484:120;:::o;638:40:2:-;;;;;;;;;;;;;;;;;;;;:::o;4663:606::-;4812:17;4852:20;4882:9;4840:1;4812:30;;4952:1;4948:5;;4943:320;4959:9;;4955:1;:13;4943:320;;;5004:33;5015:6;5023:10;5035:1;5004:10;:33::i;:::-;4989:48;;5083:1;5059:6;:20;5066:12;5059:20;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;5051:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5157:9;5142:24;;:12;:24;;;5134:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5240:12;5228:24;;4970:3;;;;;;;4943:320;;;4663:606;;;;;:::o;3276:548:6:-;3407:12;3678:19;3452;3439:32;;;;;;;;:9;:32;;;;;;;;;3435:383;;;3495:35;3507:2;3511:5;3518:4;3524:5;3495:11;:35::i;:::-;3485:45;;3435:383;;;3562:27;3549:40;;;;;;;;:9;:40;;;;;;;;;3545:273;;;3613:36;3633:2;3637:4;3643:5;3613:19;:36::i;:::-;3603:46;;3545:273;;;3700:19;3714:4;3700:13;:19::i;:::-;3678:41;;3758:1;3743:11;:16;;;;3733:26;;3778:29;3795:11;3778:29;;;;;;;;;;;;;;;;;;;;;;3545:273;3435:383;3276:548;;;;;;;;:::o;643:1208:7:-;1247:20;1300:9;1399:13;877:1;864:9;;:14;856:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1020:7;:14;1006:10;:28;;;;998:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1158:1;1144:10;:15;;;;1136:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:3;1247:38;;1312:1;1300:13;;1295:433;1319:7;:14;1315:1;:18;1295:433;;;1415:7;1423:1;1415:10;;;;;;;;;;;;;;;;;;1399:26;;1456:1;1447:5;:10;;;;:38;;;;;337:3;1461:24;;:5;:24;;;;1447:38;1439:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1603:1;1586:6;:13;1593:5;1586:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1578:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1678:5;1655:6;:20;1662:12;1655:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1712:5;1697:20;;1335:3;;;;;;;1295:433;;;337:3;1737:6;:20;1744:12;1737:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1798:7;:14;1785:10;:27;;;;1834:10;1822:22;;:9;:22;;;;643:1208;;;;;:::o;735:409:6:-;849:1;820:7;:25;550:3;820:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;812:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;550:3;902:7;:25;550:3;902:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;966:1;960:2;:7;;;;956:181;;;1061:40;1081:2;1085:4;1091:9;1061:19;:40::i;:::-;1053:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;956:181;735:409;;:::o;3830:309::-;3939:12;4121:1;4118;4111:4;4105:11;4098:4;4092;4088:15;4081:5;4077:2;4070:5;4065:58;4054:69;;4040:93;;;;;;:::o;4145:303::-;4247:12;4430:1;4427;4420:4;4414:11;4407:4;4401;4397:15;4393:2;4386:5;4373:59;4362:70;;4348:94;;;;;:::o;4454:261::-;4523:19;4693:4;4687:11;4680:4;4674;4670:15;4667:1;4660:39;4645:54;;4631:78;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"./interfaces/ERC20Token.sol\";\nimport \"./GnosisSafe.sol\";\nimport \"./MasterCopy.sol\";\nimport \"./SignatureValidator.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, SignatureValidator {\n\n string public constant NAME = \"Gnosis Safe Personal Edition\";\n string public constant VERSION = \"0.0.1\";\n \n event ExecutionFailed(bytes32 txHash);\n\n uint256 public nonce;\n\n /// @dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n /// Note: The fees are always transfered, even if the user transaction fails. \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 and to pay the payment transfer\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 signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})\n function execTransactionAndPaySubmitter(\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 bytes signatures\n )\n public\n returns (bool success)\n {\n uint256 startGas = gasleft();\n bytes32 txHash = getTransactionHash(to, value, data, operation, safeTxGas, dataGas, gasPrice, gasToken, nonce);\n checkHash(txHash, signatures);\n // Increase nonce and execute transaction.\n nonce++;\n require(gasleft() >= safeTxGas, \"Not enough gas to execute safe transaction\");\n success = execute(to, value, data, operation, safeTxGas);\n if (!success) {\n emit ExecutionFailed(txHash);\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 = (startGas - gasleft()) + dataGas;\n uint256 amount = gasCosts * gasPrice;\n if (gasToken == address(0)) {\n // solium-disable-next-line security/no-tx-origin,security/no-send\n require(tx.origin.send(amount), \"Could not pay gas costs with ether\");\n } else {\n // solium-disable-next-line security/no-tx-origin\n require(ERC20Token(gasToken).transfer(tx.origin, amount), \"Could not pay gas costs with token\");\n }\n } \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 `execTransactionAndPaySubmitter`\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 // We don't provide an error message here, as we use it to return the estimate\n require(execute(to, value, data, operation, gasleft()));\n uint256 requiredGas = startGas - gasleft();\n // Convert response to string and return via error message\n revert(string(abi.encodePacked(requiredGas)));\n }\n\n function checkHash(bytes32 txHash, bytes signatures)\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 = recoverKey(txHash, signatures, i);\n require(owners[currentOwner] != 0, \"Signature not provided by owner\");\n require(currentOwner > lastOwner, \"Signatures are not ordered by owner address\");\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", + "bytecode": "0x608060405234801561001057600080fd5b506140c4806100206000396000f30060806040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095293341461011f5780630d582f131461025b5780630ec78d9e146102a85780632f54bf6e1461037e578063468721a7146103d9578063610b592514610491578063694e80c3146104d45780637de7edef1461050157806385e332cd146105445780638cff63551461059b578063a0e67e2b146105f2578063a3f4df7e1461065e578063affed0e0146106ee578063b2494df314610719578063ba08ea2414610785578063c4ca3a9c14610889578063e009cfde1461093d578063e318b52b146109a0578063e75235b814610a23578063f8dc5dd914610a4e578063ffa1ad7414610abb575b005b34801561012b57600080fd5b50610241600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b4b565b604051808215151515815260200191505060405180910390f35b34801561026757600080fd5b506102a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e51565b005b3480156102b457600080fd5b5061037c6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611257565b005b34801561038a57600080fd5b506103bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611271565b604051808215151515815260200191505060405180910390f35b3480156103e557600080fd5b50610477600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506112f3565b604051808215151515815260200191505060405180910390f35b34801561049d57600080fd5b506104d2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061141f565b005b3480156104e057600080fd5b506104ff600480360381019080803590602001909291905050506117fd565b005b34801561050d57600080fd5b50610542600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a0f565b005b34801561055057600080fd5b50610559611bd0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105a757600080fd5b506105b0611bd5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105fe57600080fd5b50610607611bda565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561064a57808201518184015260208101905061062f565b505050509050019250505060405180910390f35b34801561066a57600080fd5b50610673611d75565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106b3578082015181840152602081019050610698565b50505050905090810190601f1680156106e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106fa57600080fd5b50610703611dae565b6040518082815260200191505060405180910390f35b34801561072557600080fd5b5061072e611db4565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610771578082015181840152602081019050610756565b505050509050019250505060405180910390f35b34801561079157600080fd5b5061086b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061205b565b60405180826000191660001916815260200191505060405180910390f35b34801561089557600080fd5b50610927600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050612342565b6040518082815260200191505060405180910390f35b34801561094957600080fd5b5061099e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124f1565b005b3480156109ac57600080fd5b50610a21600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061290a565b005b348015610a2f57600080fd5b50610a38612f57565b6040518082815260200191505060405180910390f35b348015610a5a57600080fd5b50610ab9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f61565b005b348015610ac757600080fd5b50610ad0613446565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b10578082015181840152602081019050610af5565b50505050905090810190601f168015610b3d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008060008060005a9350610b698e8e8e8e8e8e8e8e60055461205b565b9250610b75838761347f565b600560008154809291906001019190505550895a10151515610c25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f7420656e6f7567682067617320746f20657865637574652073616665207481526020017f72616e73616374696f6e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610c328e8e8e8e8e613671565b9450841515610c7b577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c8360405180826000191660001916815260200191505060405180910390a15b6000881115610e4057885a85030191508782029050600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610d99573273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610d94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f73747320776974682065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610e3f565b610da487328361376e565b1515610e3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f737473207769746820746f6b81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b5b505050509998505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610f6e5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610fe2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156110cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060045414151561125357611252816117fd565b5b5050565b6112618484613887565b61126b8282613d47565b50505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611415858585855a613671565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561153c5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156115b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515611966576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ad8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611b8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b600181565b606080600080600354604051908082528060200260200182016040528015611c115781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611d6c57808383815181101515611cc157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611c7c565b82935050505090565b6040805190810160405280601c81526020017f476e6f736973205361666520506572736f6e616c2045646974696f6e0000000081525081565b60055481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611ec857600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611e23565b82604051908082528060200260200182016040528015611ef75781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561205257818184815181101515611fa757fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611f62565b80935050505090565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f010000000000000000000000000000000000000000000000000000000000000002308c8c8c8c8c8c8c8c8c604051602001808d7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189815260200188805190602001908083835b60208310151561220357805182526020820191506020810190506020830392506121de565b6001836020036101000a03801982511681845116808217855250505050505090500187600281111561223157fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018281526020019c505050505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561230657805182526020820191506020810190506020830392506122e1565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509998505050505050505050565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b5a9150612420878787875a613671565b151561242b57600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124b657808201518184015260208101905061249b565b50505050905090810190601f1680156124e35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561260e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156127aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015612a275750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612a9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612b88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612bdc5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612c50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612d78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561302a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160035403101515156130cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156131215750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515613195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156132bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060045414151561344157613440816117fd565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000809250600090505b60045481101561366a576134a1858583613f7e565b91506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515613591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1611151561365a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b819250808060010191505061348c565b5050505050565b6000806000600281111561368157fe5b84600281111561368d57fe5b14156136a65761369f87878786614027565b9150613764565b600160028111156136b357fe5b8460028111156136bf57fe5b14156136d7576136d0878685614040565b9150613763565b6136e085614057565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d6000811461386a5760208114613872576000945061387c565b82945061387c565b8151158315171594505b505050509392505050565b600080600080600454141515613905576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b845184111515156139a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515613a43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015613cb2578482815181101515613a6357fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015613ac35750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515613b37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613c24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050613a4c565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613e5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515613f7a57613f0582825a614040565b1515613f79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b600080600080613f8e8686614069565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015614011573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a72305820606a4e209e1e90df13cf1902af9e45183ce83535399924987f1a6033df3a4b9d0029", + "deployedBytecode": "0x60806040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063095293341461011f5780630d582f131461025b5780630ec78d9e146102a85780632f54bf6e1461037e578063468721a7146103d9578063610b592514610491578063694e80c3146104d45780637de7edef1461050157806385e332cd146105445780638cff63551461059b578063a0e67e2b146105f2578063a3f4df7e1461065e578063affed0e0146106ee578063b2494df314610719578063ba08ea2414610785578063c4ca3a9c14610889578063e009cfde1461093d578063e318b52b146109a0578063e75235b814610a23578063f8dc5dd914610a4e578063ffa1ad7414610abb575b005b34801561012b57600080fd5b50610241600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610b4b565b604051808215151515815260200191505060405180910390f35b34801561026757600080fd5b506102a6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e51565b005b3480156102b457600080fd5b5061037c6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611257565b005b34801561038a57600080fd5b506103bf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611271565b604051808215151515815260200191505060405180910390f35b3480156103e557600080fd5b50610477600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506112f3565b604051808215151515815260200191505060405180910390f35b34801561049d57600080fd5b506104d2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061141f565b005b3480156104e057600080fd5b506104ff600480360381019080803590602001909291905050506117fd565b005b34801561050d57600080fd5b50610542600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a0f565b005b34801561055057600080fd5b50610559611bd0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105a757600080fd5b506105b0611bd5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156105fe57600080fd5b50610607611bda565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561064a57808201518184015260208101905061062f565b505050509050019250505060405180910390f35b34801561066a57600080fd5b50610673611d75565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106b3578082015181840152602081019050610698565b50505050905090810190601f1680156106e05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106fa57600080fd5b50610703611dae565b6040518082815260200191505060405180910390f35b34801561072557600080fd5b5061072e611db4565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610771578082015181840152602081019050610756565b505050509050019250505060405180910390f35b34801561079157600080fd5b5061086b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061205b565b60405180826000191660001916815260200191505060405180910390f35b34801561089557600080fd5b50610927600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190505050612342565b6040518082815260200191505060405180910390f35b34801561094957600080fd5b5061099e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506124f1565b005b3480156109ac57600080fd5b50610a21600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061290a565b005b348015610a2f57600080fd5b50610a38612f57565b6040518082815260200191505060405180910390f35b348015610a5a57600080fd5b50610ab9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612f61565b005b348015610ac757600080fd5b50610ad0613446565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610b10578082015181840152602081019050610af5565b50505050905090810190601f168015610b3d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008060008060005a9350610b698e8e8e8e8e8e8e8e60055461205b565b9250610b75838761347f565b600560008154809291906001019190505550895a10151515610c25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001807f4e6f7420656e6f7567682067617320746f20657865637574652073616665207481526020017f72616e73616374696f6e0000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610c328e8e8e8e8e613671565b9450841515610c7b577fabfd711ecdd15ae3a6b3ad16ff2e9d81aec026a39d16725ee164be4fbf857a7c8360405180826000191660001916815260200191505060405180910390a15b6000881115610e4057885a85030191508782029050600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415610d99573273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501515610d94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f73747320776974682065746881526020017f657200000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610e3f565b610da487328361376e565b1515610e3e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f74207061792067617320636f737473207769746820746f6b81526020017f656e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b5b505050509998505050505050505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f1a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610f6e5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610fe2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156110cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060045414151561125357611252816117fd565b5b5050565b6112618484613887565b61126b8282613d47565b50505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515611408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611415858585855a613671565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114e8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561153c5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156115b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561169d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156118c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515611966576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611a05576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ad8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611b8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b600181565b606080600080600354604051908082528060200260200182016040528015611c115781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611d6c57808383815181101515611cc157fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611c7c565b82935050505090565b6040805190810160405280601c81526020017f476e6f736973205361666520506572736f6e616c2045646974696f6e0000000081525081565b60055481565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515611ec857600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611e23565b82604051908082528060200260200182016040528015611ef75781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151561205257818184815181101515611fa757fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050611f62565b80935050505090565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f010000000000000000000000000000000000000000000000000000000000000002308c8c8c8c8c8c8c8c8c604051602001808d7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018c7effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140189815260200188805190602001908083835b60208310151561220357805182526020820191506020810190506020830392506121de565b6001836020036101000a03801982511681845116808217855250505050505090500187600281111561223157fe5b60ff167f01000000000000000000000000000000000000000000000000000000000000000281526001018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018281526020019c505050505050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561230657805182526020820191506020810190506020830392506122e1565b6001836020036101000a038019825116818451168082178552505050505050905001915050604051809103902090509998505050505050505050565b60008060003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612410576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b5a9150612420878787875a613671565b151561242b57600080fd5b5a8203905080604051602001808281526020019150506040516020818303038152906040526040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124b657808201518184015260208101905061249b565b50505050905090810190601f1680156124e35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561260e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156127aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156129d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015612a275750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612a9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612b88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612bdc5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612c50576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612d78576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561302a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160035403101515156130cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156131215750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515613195576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156132bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060045414151561344157613440816117fd565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000809250600090505b60045481101561366a576134a1858583613f7e565b91506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515613591576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1611151561365a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b819250808060010191505061348c565b5050505050565b6000806000600281111561368157fe5b84600281111561368d57fe5b14156136a65761369f87878786614027565b9150613764565b600160028111156136b357fe5b8460028111156136bf57fe5b14156136d7576136d0878685614040565b9150613763565b6136e085614057565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d6000811461386a5760208114613872576000945061387c565b82945061387c565b8151158315171594505b505050509392505050565b600080600080600454141515613905576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b845184111515156139a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018410151515613a43576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015613cb2578482815181101515613a6357fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614158015613ac35750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515613b37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613c24576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508092508180600101925050613a4c565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613e5b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515613f7a57613f0582825a614040565b1515613f79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b600080600080613f8e8686614069565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015614011573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f09050919050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a72305820606a4e209e1e90df13cf1902af9e45183ce83535399924987f1a6033df3a4b9d0029", + "sourceMap": "483:5903:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;483:5903:3;;;;;;;", + "deployedSourceMap": "483:5903:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1677:1545;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1677:1545:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2093:595:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;693:303:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;693:303:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5613:129:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5613:129:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2841:429:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2841:429:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:459:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;5087:399:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5087:399:9;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:55:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:55:8;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:9;;;;;;;;;;;;;;;;;;;;;;;;;;;5824:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5824: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;5824:458:9;;;;;;;;;;;;;;;;;593:60:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;593: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;593:60:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;754:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;754:20:3;;;;;;;;;;;;;;;;;;;;;;;4794:738:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4794: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;4794:738:8;;;;;;;;;;;;;;;;;5884:500:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5884:500:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4149:523;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4149:523:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:474:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2031:474:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4147:751:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4147:751:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:115:9;;;;;;;;;;;;;;;;;;;;;;;3030:783;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3030:783:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;659:40:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;659: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;659:40:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1677:1545;1986:12;2014:16;2052:14;2680:16;2745:14;2033:9;2014:28;;2069:93;2088:2;2092:5;2099:4;2105:9;2116;2127:7;2136:8;2146;2156:5;;2069:18;:93::i;:::-;2052:110;;2172:29;2182:6;2190:10;2172:9;:29::i;:::-;2262:5;;:7;;;;;;;;;;;;;2300:9;2287;:22;;2279:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2376:46;2384:2;2388:5;2395:4;2401:9;2412;2376:7;:46::i;:::-;2366:56;;2437:7;2436:8;2432:67;;;2465:23;2481:6;2465:23;;;;;;;;;;;;;;;;;;;;;;;;2432:67;2663:1;2652:8;:12;2648:566;;;2724:7;2711:9;2700:8;:20;2699:32;2680:51;;2773:8;2762;:19;2745:36;;2819:1;2799:22;;:8;:22;;;2795:409;;;2933:9;:14;;:22;2948:6;2933:22;;;;;;;;;;;;;;;;;;;;;;;2925:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2795:409;;;3108:42;3122:8;3132:9;3143:6;3108:13;:42::i;:::-;3100:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2795:409;2648:566;1677:1545;;;;;;;;;;;;;;;:::o;2093:595:9:-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:1:9;2256:5;:10;;;;:38;;;;;337:3;2270:24;;:5;:24;;;;2256:38;2248:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:1;2387:6;:13;2394:5;2387:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2379:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2463:6;:23;337:3;2463:23;;;;;;;;;;;;;;;;;;;;;;;;;2447:6;:13;2454:5;2447:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2522:5;2496:6;:23;337:3;2496:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2537:10;;:12;;;;;;;;;;;;;2630:10;2617:9;;:23;;2613:68;;;2654:27;2670:10;2654:15;:27::i;:::-;2613:68;2093:595;;:::o;693:303:2:-;800:32;812:7;821:10;800:11;:32::i;:::-;967:22;980:2;984:4;967:12;:22::i;:::-;693:303;;;;:::o;5613:129:9:-;5690:4;5734:1;5717:6;:13;5724:5;5717:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5710:25;;5613:129;;;:::o;2841:429:8:-;2973:12;3081:1;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;3050:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3217:46;3225:2;3229:5;3236:4;3242:9;3253;3217:7;:46::i;:::-;3207:56;;2841:429;;;;;;:::o;1311:459::-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1477:1:8;1466:6;1458:20;;;;:59;;;;;550:3;1482:35;;1490:6;1482:35;;;;1458:59;1450:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:1;1612:7;:15;1620:6;1612:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1604:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:7;:25;550:3;1694:25;;;;;;;;;;;;;;;;;;;;;;;;;1676:7;:15;1684:6;1676:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1757:6;1729:7;:25;550:3;1729:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1311:459;:::o;5087:399:9:-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5271:10:9;;5257;:24;;5249:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5405:1;5391:10;:15;;5383:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:10;5457:9;:22;;;;5087:399;:::o;626:248:5:-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;499:55:8:-;550:3;499:55;:::o;287:54:9:-;337:3;287:54;:::o;5824:458::-;5890:9;5915:22;6009:13;6036:20;5954:10;;5940: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;5940:25:9;;;;5915:50;;6025:1;6009:17;;6059:6;:23;337:3;6059:23;;;;;;;;;;;;;;;;;;;;;;;;;6036:46;;6092:162;337:3;6098:31;;:12;:31;;;;6092:162;;;6160:12;6145:5;6151;6145:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6201:6;:20;6208:12;6201:20;;;;;;;;;;;;;;;;;;;;;;;;;6186:35;;6235:8;;;;;;;6092:162;;;6270:5;6263:12;;5824:458;;;;:::o;593:60:3:-;;;;;;;;;;;;;;;;;;;;:::o;754:20::-;;;;:::o;4794:738:8:-;4861:9;4920:19;4953:21;5153:22;4942:1;4920:23;;4977:7;:25;550:3;4977:25;;;;;;;;;;;;;;;;;;;;;;;;;4953:49;;5012:132;550:3;5018:33;;:13;:33;;;;5012:132;;;5083:7;:22;5091:13;5083:22;;;;;;;;;;;;;;;;;;;;;;;;;5067:38;;5119:14;;;;;;;5012:132;;;5192:11;5178: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;5178:26:8;;;;5153:51;;5262:1;5248:15;;5289:7;:25;550:3;5289:25;;;;;;;;;;;;;;;;;;;;;;;;;5273:41;;5324:180;550:3;5330:33;;:13;:33;;;;5324:180;;;5400:13;5379:5;5385:11;5379:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5443:7;:22;5451:13;5443:22;;;;;;;;;;;;;;;;;;;;;;;;;5427:38;;5479:14;;;;;;;5324:180;;;5520:5;5513:12;;4794:738;;;;:::o;5884:500:3:-;6195:7;6270:4;6265:10;;6282:1;6277:7;;6286:4;6292:2;6296:5;6303:4;6309:9;6320;6331:7;6340:8;6350;6360:6;6248: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;;;6248:119:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6248:119:3;;;6225: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;;;6225:152:3;;;;;;;;;;;;;;;;6218:159;;5884:500;;;;;;;;;;;:::o;4149:523::-;4288:7;4311:16;4501:19;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:9:3;4311:28;;4444:46;4452:2;4456:5;4463:4;4469:9;4480;4444:7;:46::i;:::-;4436:55;;;;;;;;4534:9;4523:8;:20;4501:42;;4651:11;4634:29;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4634:29:3;;;4620: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;4620:45:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:474:8;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:1:8;2234:6;2226:20;;;;:59;;;;;550:3;2250:35;;2258:6;2250:35;;;;2226:59;2218:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2370:6;2339:38;;:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2331:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2454:7;:15;2462:6;2454:15;;;;;;;;;;;;;;;;;;;;;;;;;2432:7;:19;2440:10;2432:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2497:1;2479:7;:15;2487:6;2479:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2031:474;;:::o;4147:751:9:-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:1:9;4318:8;:13;;;;:44;;;;;337:3;4335:27;;:8;:27;;;;4318:44;4310:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4475:1;4455:6;:16;4462:8;4455:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4447:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4621:1;4609:8;:13;;;;:44;;;;;337:3;4626:27;;:8;:27;;;;4609:44;4601:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:8;4706:29;;:6;:17;4713:9;4706:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4698:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4807:6;:16;4814:8;4807:16;;;;;;;;;;;;;;;;;;;;;;;;;4788:6;:16;4795:8;4788:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4853:8;4833:6;:17;4840:9;4833:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4890:1;4871:6;:16;4878:8;4871:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4147:751;;;:::o;5492:115::-;5561:7;5591:9;;5584:16;;5492:115;:::o;3030:783::-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3256:10:9;3251:1;3238:10;;:14;:28;;3230:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3431:1;3422:5;:10;;;;:38;;;;;337:3;3436:24;;:5;:24;;;;3422:38;3414:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3534:5;3513:26;;:6;:17;3520:9;3513:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3505:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:6;:13;3619:5;3612:13;;;;;;;;;;;;;;;;;;;;;;;;;3592:6;:17;3599:9;3592:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3651:1;3635:6;:13;3642:5;3635:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3662:10;;:12;;;;;;;;;;;;;;3755:10;3742:9;;:23;;3738:68;;;3779:27;3795:10;3779:15;:27::i;:::-;3738:68;3030:783;;;:::o;659:40:3:-;;;;;;;;;;;;;;;;;;;;:::o;4678:606::-;4827:17;4867:20;4897:9;4855:1;4827:30;;4967:1;4963:5;;4958:320;4974:9;;4970:1;:13;4958:320;;;5019:33;5030:6;5038:10;5050:1;5019:10;:33::i;:::-;5004:48;;5098:1;5074:6;:20;5081:12;5074:20;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;5066:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5172:9;5157:24;;:12;:24;;;5149:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5255:12;5243:24;;4985:3;;;;;;;4958:320;;;4678:606;;;;;:::o;3276:548:8:-;3407:12;3678:19;3452;3439:32;;;;;;;;:9;:32;;;;;;;;;3435:383;;;3495:35;3507:2;3511:5;3518:4;3524:5;3495:11;:35::i;:::-;3485:45;;3435:383;;;3562:27;3549:40;;;;;;;;:9;:40;;;;;;;;;3545:273;;;3613:36;3633:2;3637:4;3643:5;3613:19;:36::i;:::-;3603:46;;3545:273;;;3700:19;3714:4;3700:13;:19::i;:::-;3678:41;;3758:1;3743:11;:16;;;;3733:26;;3778:29;3795:11;3778:29;;;;;;;;;;;;;;;;;;;;;;3545:273;3435:383;3276:548;;;;;;;;:::o;430:752:13:-;568:16;600:17;673:8;683:6;620:70;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;620:70:13;;;;;;;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;;;620:70:13;600:90;;867:1;864;857:4;851:11;844:4;838;834:15;831:1;824:5;816;811:3;807:15;802:67;899:4;893:11;940:14;937:1;932:3;917:38;975:14;1008:1;1003:33;;;;1054:4;1049:76;;;;1163:1;1148:16;;968:198;;1003:33;1027:7;1012:22;;1003:33;;1049:76;1116:3;1110:10;1103:18;1093:7;1086:15;1083:39;1076:47;1061:62;;968:198;;773:403;;;;;;;;:::o;643:1210:9:-;1249:20;1302:9;1401:13;879:1;866:9;;:14;858:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1022:7;:14;1008:10;:28;;1000:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:1;1146:10;:15;;1138:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:3;1249:38;;1314:1;1302:13;;1297:433;1321:7;:14;1317:1;:18;1297:433;;;1417:7;1425:1;1417:10;;;;;;;;;;;;;;;;;;1401:26;;1458:1;1449:5;:10;;;;:38;;;;;337:3;1463:24;;:5;:24;;;;1449:38;1441:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1605:1;1588:6;:13;1595:5;1588:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1580:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1680:5;1657:6;:20;1664:12;1657:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1714:5;1699:20;;1337:3;;;;;;;1297:433;;;337:3;1739:6;:20;1746:12;1739:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1800:7;:14;1787:10;:27;;;;1836:10;1824:9;:22;;;;643:1210;;;;;:::o;735:409:8:-;849:1;820:7;:25;550:3;820:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;812:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;550:3;902:7;:25;550:3;902:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;966:1;960:2;:7;;;;956:181;;;1061:40;1081:2;1085:4;1091:9;1061:19;:40::i;:::-;1053:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;956:181;735:409;;:::o;477:330:15:-;629:7;653;670:9;689;720:37;735:16;753:3;720:14;:37::i;:::-;708:49;;;;;;;;;;;;774:26;784:6;792:1;795;798;774:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;774:26:15;;;;;;;;767:33;;477:330;;;;;;;;:::o;3830:309:8:-;3939:12;4121:1;4118;4111:4;4105:11;4098:4;4092;4088:15;4081:5;4077:2;4070:5;4065:58;4054:69;;4040:93;;;;;;:::o;4145:303::-;4247:12;4430:1;4427;4420:4;4414:11;4407:4;4401;4397:15;4393:2;4386:5;4373:59;4362:70;;4348:94;;;;;:::o;4454:261::-;4523:19;4693:4;4687:11;4680:4;4674;4670:15;4667:1;4660:39;4645:54;;4631:78;;;:::o;984:914:15:-;1086:7;1095:9;1106;1406:3;1400:4;1396:14;1468:4;1454:12;1450:23;1438:10;1434:40;1428:47;1423:52;;1533:4;1519:12;1515:23;1503:10;1499:40;1493:47;1488:52;;1877:4;1868;1854:12;1850:23;1838:10;1834:40;1828:47;1824:58;1819:63;;1362:530;;;;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./GnosisSafe.sol\";\nimport \"./MasterCopy.sol\";\nimport \"./SignatureValidator.sol\";\nimport \"./SecuredTokenTransfer.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, SignatureValidator, SecuredTokenTransfer {\n\n string public constant NAME = \"Gnosis Safe Personal Edition\";\n string public constant VERSION = \"0.0.1\";\n \n event ExecutionFailed(bytes32 txHash);\n\n uint256 public nonce;\n\n /// @dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n /// Note: The fees are always transfered, even if the user transaction fails. \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 and to pay the payment transfer\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 signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})\n function execTransactionAndPaySubmitter(\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 bytes signatures\n )\n public\n returns (bool success)\n {\n uint256 startGas = gasleft();\n bytes32 txHash = getTransactionHash(to, value, data, operation, safeTxGas, dataGas, gasPrice, gasToken, nonce);\n checkHash(txHash, signatures);\n // Increase nonce and execute transaction.\n nonce++;\n require(gasleft() >= safeTxGas, \"Not enough gas to execute safe transaction\");\n success = execute(to, value, data, operation, safeTxGas);\n if (!success) {\n emit ExecutionFailed(txHash);\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 = (startGas - gasleft()) + dataGas;\n uint256 amount = gasCosts * gasPrice;\n if (gasToken == address(0)) {\n // solium-disable-next-line security/no-tx-origin,security/no-send\n require(tx.origin.send(amount), \"Could not pay gas costs with ether\");\n } else {\n // solium-disable-next-line security/no-tx-origin\n require(transferToken(gasToken, tx.origin, amount), \"Could not pay gas costs with token\");\n }\n } \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 `execTransactionAndPaySubmitter`\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 // We don't provide an error message here, as we use it to return the estimate\n require(execute(to, value, data, operation, gasleft()));\n uint256 requiredGas = startGas - gasleft();\n // Convert response to string and return via error message\n revert(string(abi.encodePacked(requiredGas)));\n }\n\n function checkHash(bytes32 txHash, bytes signatures)\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 = recoverKey(txHash, signatures, i);\n require(owners[currentOwner] != 0, \"Signature not provided by owner\");\n require(currentOwner > lastOwner, \"Signatures are not ordered by owner address\");\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": [ - 345 + 369 ] }, - "id": 346, + "id": 370, "nodeType": "SourceUnit", "nodes": [ { - "id": 41, + "id": 65, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:2" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ERC20Token.sol", - "file": "./interfaces/ERC20Token.sol", - "id": 42, - "nodeType": "ImportDirective", - "scope": 346, - "sourceUnit": 1572, - "src": "24:37:2", - "symbolAliases": [], - "unitAlias": "" + "src": "0:23:3" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "file": "./GnosisSafe.sol", - "id": 43, + "id": 66, "nodeType": "ImportDirective", - "scope": 346, - "sourceUnit": 40, - "src": "62:26:2", + "scope": 370, + "sourceUnit": 64, + "src": "24:26:3", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 44, + "id": 67, "nodeType": "ImportDirective", - "scope": 346, - "sourceUnit": 609, - "src": "89:26:2", + "scope": 370, + "sourceUnit": 633, + "src": "51:26:3", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", "file": "./SignatureValidator.sol", - "id": 45, + "id": 68, "nodeType": "ImportDirective", - "scope": 346, - "sourceUnit": 1506, - "src": "116:34:2", + "scope": 370, + "sourceUnit": 1745, + "src": "78:34:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", + "file": "./SecuredTokenTransfer.sol", + "id": 69, + "nodeType": "ImportDirective", + "scope": 370, + "sourceUnit": 1672, + "src": "113:36:3", "symbolAliases": [], "unitAlias": "" }, @@ -608,88 +550,108 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 46, + "id": 70, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 608, - "src": "522:10:2", + "referencedDeclaration": 632, + "src": "521:10:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$608", + "typeIdentifier": "t_contract$_MasterCopy_$632", "typeString": "contract MasterCopy" } }, - "id": 47, + "id": 71, "nodeType": "InheritanceSpecifier", - "src": "522:10:2" + "src": "521:10:3" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 48, + "id": 72, "name": "GnosisSafe", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 39, - "src": "534:10:2", + "referencedDeclaration": 63, + "src": "533:10:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$39", + "typeIdentifier": "t_contract$_GnosisSafe_$63", "typeString": "contract GnosisSafe" } }, - "id": 49, + "id": 73, "nodeType": "InheritanceSpecifier", - "src": "534:10:2" + "src": "533:10:3" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 50, + "id": 74, "name": "SignatureValidator", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1505, - "src": "546:18:2", + "referencedDeclaration": 1744, + "src": "545:18:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureValidator_$1505", + "typeIdentifier": "t_contract$_SignatureValidator_$1744", "typeString": "contract SignatureValidator" } }, - "id": 51, + "id": 75, "nodeType": "InheritanceSpecifier", - "src": "546:18:2" + "src": "545:18:3" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 76, + "name": "SecuredTokenTransfer", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1671, + "src": "565:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1671", + "typeString": "contract SecuredTokenTransfer" + } + }, + "id": 77, + "nodeType": "InheritanceSpecifier", + "src": "565:20:3" } ], "contractDependencies": [ - 39, - 608, - 1022, - 1432, - 1449, - 1505 + 63, + 632, + 1103, + 1511, + 1671, + 1688, + 1744 ], "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 - \n @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment", "fullyImplemented": true, - "id": 345, + "id": 369, "linearizedBaseContracts": [ - 345, - 1505, - 39, - 1432, - 1022, - 608, - 1449 + 369, + 1671, + 1744, + 63, + 1511, + 1103, + 632, + 1688 ], "name": "GnosisSafePersonalEdition", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 54, + "id": 80, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 345, - "src": "572:60:2", + "scope": 369, + "src": "593:60:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -697,10 +659,10 @@ "typeString": "string" }, "typeName": { - "id": 52, + "id": 78, "name": "string", "nodeType": "ElementaryTypeName", - "src": "572:6:2", + "src": "593:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -709,14 +671,14 @@ "value": { "argumentTypes": null, "hexValue": "476e6f736973205361666520506572736f6e616c2045646974696f6e", - "id": 53, + "id": 79, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "602:30:2", + "src": "623:30:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b657d2895d137bf089ce1df776b732639b1ebc2a3aec3bd837e225e9e0965154", @@ -728,11 +690,11 @@ }, { "constant": true, - "id": 57, + "id": 83, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 345, - "src": "638:40:2", + "scope": 369, + "src": "659:40:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -740,10 +702,10 @@ "typeString": "string" }, "typeName": { - "id": 55, + "id": 81, "name": "string", "nodeType": "ElementaryTypeName", - "src": "638:6:2", + "src": "659:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -752,14 +714,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 56, + "id": 82, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "671:7:2", + "src": "692:7:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -772,21 +734,21 @@ { "anonymous": false, "documentation": null, - "id": 61, + "id": 87, "name": "ExecutionFailed", "nodeType": "EventDefinition", "parameters": { - "id": 60, + "id": 86, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59, + "id": 85, "indexed": false, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 61, - "src": "711:14:2", + "scope": 87, + "src": "732:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -794,10 +756,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 58, + "id": 84, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "711:7:2", + "src": "732:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -807,17 +769,17 @@ "visibility": "internal" } ], - "src": "710:16:2" + "src": "731:16:3" }, - "src": "689:38:2" + "src": "710:38:3" }, { "constant": false, - "id": 63, + "id": 89, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 345, - "src": "733:20:2", + "scope": 369, + "src": "754:20:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -825,10 +787,10 @@ "typeString": "uint256" }, "typeName": { - "id": 62, + "id": 88, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "733:7:2", + "src": "754:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -839,22 +801,22 @@ }, { "body": { - "id": 189, + "id": 213, "nodeType": "Block", - "src": "1983:1224:2", + "src": "2004:1218:3", "statements": [ { "assignments": [ - 87 + 113 ], "declarations": [ { "constant": false, - "id": 87, + "id": 113, "name": "startGas", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1993:16:2", + "scope": 214, + "src": "2014:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -862,10 +824,10 @@ "typeString": "uint256" }, "typeName": { - "id": 86, + "id": 112, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1993:7:2", + "src": "2014:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -875,24 +837,24 @@ "visibility": "internal" } ], - "id": 90, + "id": 116, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 88, + "id": 114, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "2012:7:2", + "referencedDeclaration": 2652, + "src": "2033:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 89, + "id": 115, "isConstant": false, "isLValue": false, "isPure": false, @@ -900,27 +862,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2012:9:2", + "src": "2033:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1993:28:2" + "src": "2014:28:3" }, { "assignments": [ - 92 + 118 ], "declarations": [ { "constant": false, - "id": 92, + "id": 118, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "2031:14:2", + "scope": 214, + "src": "2052:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -928,10 +890,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 91, + "id": 117, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2031:7:2", + "src": "2052:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -941,18 +903,18 @@ "visibility": "internal" } ], - "id": 104, + "id": 130, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 94, + "id": 120, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "2067:2:2", + "referencedDeclaration": 91, + "src": "2088:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -960,12 +922,12 @@ }, { "argumentTypes": null, - "id": 95, + "id": 121, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "2071:5:2", + "referencedDeclaration": 93, + "src": "2092:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -973,12 +935,12 @@ }, { "argumentTypes": null, - "id": 96, + "id": 122, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "2078:4:2", + "referencedDeclaration": 95, + "src": "2099:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -986,25 +948,25 @@ }, { "argumentTypes": null, - "id": 97, + "id": 123, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "2084:9:2", + "referencedDeclaration": 97, + "src": "2105:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 98, + "id": 124, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "2095:9:2", + "referencedDeclaration": 99, + "src": "2116:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1012,12 +974,12 @@ }, { "argumentTypes": null, - "id": 99, + "id": 125, "name": "dataGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "2106:7:2", + "referencedDeclaration": 101, + "src": "2127:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1025,12 +987,12 @@ }, { "argumentTypes": null, - "id": 100, + "id": 126, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2115:8:2", + "referencedDeclaration": 103, + "src": "2136:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1038,12 +1000,12 @@ }, { "argumentTypes": null, - "id": 101, + "id": 127, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "2125:8:2", + "referencedDeclaration": 105, + "src": "2146:8:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1051,12 +1013,12 @@ }, { "argumentTypes": null, - "id": 102, + "id": 128, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "2135:5:2", + "referencedDeclaration": 89, + "src": "2156:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1078,7 +1040,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -1102,18 +1064,18 @@ "typeString": "uint256" } ], - "id": 93, + "id": 119, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 344, - "src": "2048:18:2", + "referencedDeclaration": 368, + "src": "2069: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_address_$_t_uint256_$returns$_t_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": 103, + "id": 129, "isConstant": false, "isLValue": false, "isPure": false, @@ -1121,14 +1083,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2048:93:2", + "src": "2069:93:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2031:110:2" + "src": "2052:110:3" }, { "expression": { @@ -1136,12 +1098,12 @@ "arguments": [ { "argumentTypes": null, - "id": 106, + "id": 132, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "2161:6:2", + "referencedDeclaration": 118, + "src": "2182:6:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1149,12 +1111,12 @@ }, { "argumentTypes": null, - "id": 107, + "id": 133, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 81, - "src": "2169:10:2", + "referencedDeclaration": 107, + "src": "2190:10:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1172,18 +1134,18 @@ "typeString": "bytes memory" } ], - "id": 105, + "id": 131, "name": "checkHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "2151:9:2", + "referencedDeclaration": 322, + "src": "2172:9:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes32,bytes memory) view" } }, - "id": 108, + "id": 134, "isConstant": false, "isLValue": false, "isPure": false, @@ -1191,20 +1153,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2151:29:2", + "src": "2172:29:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 109, + "id": 135, "nodeType": "ExpressionStatement", - "src": "2151:29:2" + "src": "2172:29:3" }, { "expression": { "argumentTypes": null, - "id": 111, + "id": 137, "isConstant": false, "isLValue": false, "isPure": false, @@ -1212,15 +1174,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2241:7:2", + "src": "2262:7:3", "subExpression": { "argumentTypes": null, - "id": 110, + "id": 136, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "2241:5:2", + "referencedDeclaration": 89, + "src": "2262:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1231,9 +1193,9 @@ "typeString": "uint256" } }, - "id": 112, + "id": 138, "nodeType": "ExpressionStatement", - "src": "2241:7:2" + "src": "2262:7:3" }, { "expression": { @@ -1245,7 +1207,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 117, + "id": 143, "isConstant": false, "isLValue": false, "isPure": false, @@ -1255,18 +1217,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 114, + "id": 140, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "2266:7:2", + "referencedDeclaration": 2652, + "src": "2287:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 115, + "id": 141, "isConstant": false, "isLValue": false, "isPure": false, @@ -1274,7 +1236,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2266:9:2", + "src": "2287:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1284,18 +1246,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 116, + "id": 142, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "2279:9:2", + "referencedDeclaration": 99, + "src": "2300:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2266:22:2", + "src": "2287:22:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1304,14 +1266,14 @@ { "argumentTypes": null, "hexValue": "4e6f7420656e6f7567682067617320746f20657865637574652073616665207472616e73616374696f6e", - "id": 118, + "id": 144, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2290:44:2", + "src": "2311:44:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", @@ -1331,21 +1293,21 @@ "typeString": "literal_string \"Not enough gas to execute safe transaction\"" } ], - "id": 113, + "id": 139, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2258:7:2", + "referencedDeclaration": 2663, + "src": "2279:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 119, + "id": 145, "isConstant": false, "isLValue": false, "isPure": false, @@ -1353,32 +1315,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2258:77:2", + "src": "2279:77:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 120, + "id": 146, "nodeType": "ExpressionStatement", - "src": "2258:77:2" + "src": "2279:77:3" }, { "expression": { "argumentTypes": null, - "id": 129, + "id": 155, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 121, + "id": 147, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "2345:7:2", + "referencedDeclaration": 110, + "src": "2366:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1391,12 +1353,12 @@ "arguments": [ { "argumentTypes": null, - "id": 123, + "id": 149, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "2363:2:2", + "referencedDeclaration": 91, + "src": "2384:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1404,12 +1366,12 @@ }, { "argumentTypes": null, - "id": 124, + "id": 150, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "2367:5:2", + "referencedDeclaration": 93, + "src": "2388:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1417,12 +1379,12 @@ }, { "argumentTypes": null, - "id": 125, + "id": 151, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "2374:4:2", + "referencedDeclaration": 95, + "src": "2395:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1430,25 +1392,25 @@ }, { "argumentTypes": null, - "id": 126, + "id": 152, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "2380:9:2", + "referencedDeclaration": 97, + "src": "2401:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 127, + "id": 153, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "2391:9:2", + "referencedDeclaration": 99, + "src": "2412:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1470,7 +1432,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -1478,18 +1440,18 @@ "typeString": "uint256" } ], - "id": 122, + "id": 148, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "2355:7:2", + "referencedDeclaration": 992, + "src": "2376: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": 154, "isConstant": false, "isLValue": false, "isPure": false, @@ -1497,26 +1459,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2355:46:2", + "src": "2376:46:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2345:56:2", + "src": "2366:56:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 130, + "id": 156, "nodeType": "ExpressionStatement", - "src": "2345:56:2" + "src": "2366:56:3" }, { "condition": { "argumentTypes": null, - "id": 132, + "id": 158, "isConstant": false, "isLValue": false, "isPure": false, @@ -1524,15 +1486,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2415:8:2", + "src": "2436:8:3", "subExpression": { "argumentTypes": null, - "id": 131, + "id": 157, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "2416:7:2", + "referencedDeclaration": 110, + "src": "2437:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1544,13 +1506,13 @@ } }, "falseBody": null, - "id": 138, + "id": 164, "nodeType": "IfStatement", - "src": "2411:67:2", + "src": "2432:67:3", "trueBody": { - "id": 137, + "id": 163, "nodeType": "Block", - "src": "2425:53:2", + "src": "2446:53:3", "statements": [ { "eventCall": { @@ -1558,12 +1520,12 @@ "arguments": [ { "argumentTypes": null, - "id": 134, + "id": 160, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "2460:6:2", + "referencedDeclaration": 118, + "src": "2481:6:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1577,18 +1539,18 @@ "typeString": "bytes32" } ], - "id": 133, + "id": 159, "name": "ExecutionFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "2444:15:2", + "referencedDeclaration": 87, + "src": "2465:15:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 135, + "id": 161, "isConstant": false, "isLValue": false, "isPure": false, @@ -1596,15 +1558,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2444:23:2", + "src": "2465:23:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 136, + "id": 162, "nodeType": "EmitStatement", - "src": "2439:28:2" + "src": "2460:28:3" } ] } @@ -1616,19 +1578,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 141, + "id": 167, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 139, + "id": 165, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2631:8:2", + "referencedDeclaration": 103, + "src": "2652:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1639,14 +1601,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 140, + "id": 166, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2642:1:2", + "src": "2663:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1654,33 +1616,33 @@ }, "value": "0" }, - "src": "2631:12:2", + "src": "2652:12:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 188, + "id": 212, "nodeType": "IfStatement", - "src": "2627:572:2", + "src": "2648:566:3", "trueBody": { - "id": 187, + "id": 211, "nodeType": "Block", - "src": "2645:554:2", + "src": "2666:548:3", "statements": [ { "assignments": [ - 143 + 169 ], "declarations": [ { "constant": false, - "id": 143, + "id": 169, "name": "gasCosts", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "2659:16:2", + "scope": 214, + "src": "2680:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1688,10 +1650,10 @@ "typeString": "uint256" }, "typeName": { - "id": 142, + "id": 168, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2659:7:2", + "src": "2680:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1701,14 +1663,14 @@ "visibility": "internal" } ], - "id": 151, + "id": 177, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 150, + "id": 176, "isConstant": false, "isLValue": false, "isPure": false, @@ -1722,19 +1684,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 147, + "id": 173, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 144, + "id": 170, "name": "startGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "2679:8:2", + "referencedDeclaration": 113, + "src": "2700:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1747,18 +1709,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 145, + "id": 171, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "2690:7:2", + "referencedDeclaration": 2652, + "src": "2711:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 146, + "id": 172, "isConstant": false, "isLValue": false, "isPure": false, @@ -1766,27 +1728,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2690:9:2", + "src": "2711:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2679:20:2", + "src": "2700:20:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 148, + "id": 174, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2678:22:2", + "src": "2699:22:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1796,38 +1758,38 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 149, + "id": 175, "name": "dataGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "2703:7:2", + "referencedDeclaration": 101, + "src": "2724:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2678:32:2", + "src": "2699:32:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2659:51:2" + "src": "2680:51:3" }, { "assignments": [ - 153 + 179 ], "declarations": [ { "constant": false, - "id": 153, + "id": 179, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "2724:14:2", + "scope": 214, + "src": "2745:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1835,10 +1797,10 @@ "typeString": "uint256" }, "typeName": { - "id": 152, + "id": 178, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2724:7:2", + "src": "2745:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1848,26 +1810,26 @@ "visibility": "internal" } ], - "id": 157, + "id": 183, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 156, + "id": 182, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 154, + "id": 180, "name": "gasCosts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "2741:8:2", + "referencedDeclaration": 169, + "src": "2762:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1877,25 +1839,25 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 155, + "id": 181, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2752:8:2", + "referencedDeclaration": 103, + "src": "2773:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2741:19:2", + "src": "2762:19:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2724:36:2" + "src": "2745:36:3" }, { "condition": { @@ -1904,19 +1866,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 162, + "id": 188, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 158, + "id": 184, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "2778:8:2", + "referencedDeclaration": 105, + "src": "2799:8:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1930,14 +1892,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 160, + "id": 186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2798:1:2", + "src": "2819:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1953,20 +1915,20 @@ "typeString": "int_const 0" } ], - "id": 159, + "id": 185, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2790:7:2", + "src": "2811:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 161, + "id": 187, "isConstant": false, "isLValue": false, "isPure": true, @@ -1974,22 +1936,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2790:10:2", + "src": "2811:10:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2778:22:2", + "src": "2799:22:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 185, + "id": 209, "nodeType": "Block", - "src": "2994:195:2", + "src": "3015:189:3", "statements": [ { "expression": { @@ -2000,28 +1962,12 @@ "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 178, - "name": "tx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1785, - "src": "3117:2:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_transaction", - "typeString": "tx" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "origin", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:9:2", + "id": 201, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "3122:8:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2029,12 +1975,41 @@ }, { "argumentTypes": null, - "id": 180, + "expression": { + "argumentTypes": null, + "id": 202, + "name": "tx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2671, + "src": "3132:2:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_transaction", + "typeString": "tx" + } + }, + "id": 203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "origin", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3132:9:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 204, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "3128:6:2", + "referencedDeclaration": 179, + "src": "3143:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2043,6 +2018,10 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, { "typeIdentifier": "t_address", "typeString": "address" @@ -2052,70 +2031,18 @@ "typeString": "uint256" } ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 175, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "3098:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 174, - "name": "ERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1571, - "src": "3087:10:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Token_$1571_$", - "typeString": "type(contract ERC20Token)" - } - }, - "id": 176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3087:20:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Token_$1571", - "typeString": "contract ERC20Token" - } - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1525, - "src": "3087:29:2", + "id": 200, + "name": "transferToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1670, + "src": "3108:13:3", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" } }, - "id": 181, + "id": 205, "isConstant": false, "isLValue": false, "isPure": false, @@ -2123,7 +2050,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3087:48:2", + "src": "3108:42:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2132,14 +2059,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792067617320636f737473207769746820746f6b656e", - "id": 182, + "id": 206, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3137:36:2", + "src": "3152:36:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", @@ -2159,21 +2086,21 @@ "typeString": "literal_string \"Could not pay gas costs with token\"" } ], - "id": 173, + "id": 199, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "3079:7:2", + "referencedDeclaration": 2663, + "src": "3100:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 183, + "id": 207, "isConstant": false, "isLValue": false, "isPure": false, @@ -2181,25 +2108,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3079:95:2", + "src": "3100:89:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 184, + "id": 208, "nodeType": "ExpressionStatement", - "src": "3079:95:2" + "src": "3100:89:3" } ] }, - "id": 186, + "id": 210, "nodeType": "IfStatement", - "src": "2774:415:2", + "src": "2795:409:3", "trueBody": { - "id": 172, + "id": 198, "nodeType": "Block", - "src": "2802:186:2", + "src": "2823:186:3", "statements": [ { "expression": { @@ -2210,12 +2137,12 @@ "arguments": [ { "argumentTypes": null, - "id": 167, + "id": 193, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "2927:6:2", + "referencedDeclaration": 179, + "src": "2948:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2233,18 +2160,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 164, + "id": 190, "name": "tx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1785, - "src": "2912:2:2", + "referencedDeclaration": 2671, + "src": "2933:2:3", "typeDescriptions": { "typeIdentifier": "t_magic_transaction", "typeString": "tx" } }, - "id": 165, + "id": 191, "isConstant": false, "isLValue": false, "isPure": false, @@ -2252,13 +2179,13 @@ "memberName": "origin", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2912:9:2", + "src": "2933:9:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 166, + "id": 192, "isConstant": false, "isLValue": false, "isPure": false, @@ -2266,13 +2193,13 @@ "memberName": "send", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2912:14:2", + "src": "2933:14:3", "typeDescriptions": { "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) returns (bool)" } }, - "id": 168, + "id": 194, "isConstant": false, "isLValue": false, "isPure": false, @@ -2280,7 +2207,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2912:22:2", + "src": "2933:22:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2289,14 +2216,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792067617320636f7374732077697468206574686572", - "id": 169, + "id": 195, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2936:36:2", + "src": "2957:36:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", @@ -2316,21 +2243,21 @@ "typeString": "literal_string \"Could not pay gas costs with ether\"" } ], - "id": 163, + "id": 189, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2904:7:2", + "referencedDeclaration": 2663, + "src": "2925:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 170, + "id": 196, "isConstant": false, "isLValue": false, "isPure": false, @@ -2338,15 +2265,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2904:69:2", + "src": "2925:69:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 171, + "id": 197, "nodeType": "ExpressionStatement", - "src": "2904:69:2" + "src": "2925:69:3" } ] } @@ -2357,7 +2284,7 @@ ] }, "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n Note: The fees are always transfered, even if the user transaction fails. \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 and to pay the payment transfer\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 signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", - "id": 190, + "id": 214, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2365,16 +2292,16 @@ "name": "execTransactionAndPaySubmitter", "nodeType": "FunctionDefinition", "parameters": { - "id": 82, + "id": 108, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 65, + "id": 91, "name": "to", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1705:10:2", + "scope": 214, + "src": "1726:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2382,10 +2309,10 @@ "typeString": "address" }, "typeName": { - "id": 64, + "id": 90, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1705:7:2", + "src": "1726:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2396,11 +2323,11 @@ }, { "constant": false, - "id": 67, + "id": 93, "name": "value", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1726:13:2", + "scope": 214, + "src": "1747:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2408,10 +2335,10 @@ "typeString": "uint256" }, "typeName": { - "id": 66, + "id": 92, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1726:7:2", + "src": "1747:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2422,11 +2349,11 @@ }, { "constant": false, - "id": 69, + "id": 95, "name": "data", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1750:10:2", + "scope": 214, + "src": "1771:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2434,10 +2361,10 @@ "typeString": "bytes" }, "typeName": { - "id": 68, + "id": 94, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1750:5:2", + "src": "1771:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2448,26 +2375,26 @@ }, { "constant": false, - "id": 71, + "id": 97, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1771:24:2", + "scope": 214, + "src": "1792: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": 96, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "1771:14:2", + "referencedDeclaration": 29, + "src": "1792:14:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -2476,11 +2403,11 @@ }, { "constant": false, - "id": 73, + "id": 99, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1806:17:2", + "scope": 214, + "src": "1827:17:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2488,10 +2415,10 @@ "typeString": "uint256" }, "typeName": { - "id": 72, + "id": 98, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1806:7:2", + "src": "1827:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2502,11 +2429,11 @@ }, { "constant": false, - "id": 75, + "id": 101, "name": "dataGas", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1833:15:2", + "scope": 214, + "src": "1854:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2514,10 +2441,10 @@ "typeString": "uint256" }, "typeName": { - "id": 74, + "id": 100, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1833:7:2", + "src": "1854:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2528,11 +2455,11 @@ }, { "constant": false, - "id": 77, + "id": 103, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1858:16:2", + "scope": 214, + "src": "1879:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2540,10 +2467,10 @@ "typeString": "uint256" }, "typeName": { - "id": 76, + "id": 102, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1858:7:2", + "src": "1879:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2554,11 +2481,11 @@ }, { "constant": false, - "id": 79, + "id": 105, "name": "gasToken", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1884:16:2", + "scope": 214, + "src": "1905:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2566,10 +2493,10 @@ "typeString": "address" }, "typeName": { - "id": 78, + "id": 104, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1884:7:2", + "src": "1905:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2580,11 +2507,11 @@ }, { "constant": false, - "id": 81, + "id": 107, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1910:16:2", + "scope": 214, + "src": "1931:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2592,10 +2519,10 @@ "typeString": "bytes" }, "typeName": { - "id": 80, + "id": 106, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1910:5:2", + "src": "1931:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2605,20 +2532,20 @@ "visibility": "internal" } ], - "src": "1695:237:2" + "src": "1716:237:3" }, "payable": false, "returnParameters": { - "id": 85, + "id": 111, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 84, + "id": 110, "name": "success", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1965:12:2", + "scope": 214, + "src": "1986:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2626,10 +2553,10 @@ "typeString": "bool" }, "typeName": { - "id": 83, + "id": 109, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1965:4:2", + "src": "1986:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2639,32 +2566,32 @@ "visibility": "internal" } ], - "src": "1964:14:2" + "src": "1985:14:3" }, - "scope": 345, - "src": "1656:1551:2", + "scope": 369, + "src": "1677:1545:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 237, + "id": 261, "nodeType": "Block", - "src": "4286:371:2", + "src": "4301:371:3", "statements": [ { "assignments": [ - 206 + 230 ], "declarations": [ { "constant": false, - "id": 206, + "id": 230, "name": "startGas", "nodeType": "VariableDeclaration", - "scope": 238, - "src": "4296:16:2", + "scope": 262, + "src": "4311:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2672,10 +2599,10 @@ "typeString": "uint256" }, "typeName": { - "id": 205, + "id": 229, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4296:7:2", + "src": "4311:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2685,24 +2612,24 @@ "visibility": "internal" } ], - "id": 209, + "id": 233, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 207, + "id": 231, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "4315:7:2", + "referencedDeclaration": 2652, + "src": "4330:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 208, + "id": 232, "isConstant": false, "isLValue": false, "isPure": false, @@ -2710,14 +2637,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4315:9:2", + "src": "4330:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4296:28:2" + "src": "4311:28:3" }, { "expression": { @@ -2728,12 +2655,12 @@ "arguments": [ { "argumentTypes": null, - "id": 212, + "id": 236, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "4437:2:2", + "referencedDeclaration": 216, + "src": "4452:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2741,12 +2668,12 @@ }, { "argumentTypes": null, - "id": 213, + "id": 237, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "4441:5:2", + "referencedDeclaration": 218, + "src": "4456:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2754,12 +2681,12 @@ }, { "argumentTypes": null, - "id": 214, + "id": 238, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 196, - "src": "4448:4:2", + "referencedDeclaration": 220, + "src": "4463:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2767,14 +2694,14 @@ }, { "argumentTypes": null, - "id": 215, + "id": 239, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 198, - "src": "4454:9:2", + "referencedDeclaration": 222, + "src": "4469:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -2783,18 +2710,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 216, + "id": 240, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "4465:7:2", + "referencedDeclaration": 2652, + "src": "4480:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 217, + "id": 241, "isConstant": false, "isLValue": false, "isPure": false, @@ -2802,7 +2729,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4465:9:2", + "src": "4480:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2824,7 +2751,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -2832,18 +2759,18 @@ "typeString": "uint256" } ], - "id": 211, + "id": 235, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "4429:7:2", + "referencedDeclaration": 992, + "src": "4444: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": 218, + "id": 242, "isConstant": false, "isLValue": false, "isPure": false, @@ -2851,7 +2778,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4429:46:2", + "src": "4444:46:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2865,21 +2792,21 @@ "typeString": "bool" } ], - "id": 210, + "id": 234, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1776, - "src": "4421:7:2", + "referencedDeclaration": 2662, + "src": "4436:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 219, + "id": 243, "isConstant": false, "isLValue": false, "isPure": false, @@ -2887,28 +2814,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4421:55:2", + "src": "4436:55:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 220, + "id": 244, "nodeType": "ExpressionStatement", - "src": "4421:55:2" + "src": "4436:55:3" }, { "assignments": [ - 222 + 246 ], "declarations": [ { "constant": false, - "id": 222, + "id": 246, "name": "requiredGas", "nodeType": "VariableDeclaration", - "scope": 238, - "src": "4486:19:2", + "scope": 262, + "src": "4501:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2916,10 +2843,10 @@ "typeString": "uint256" }, "typeName": { - "id": 221, + "id": 245, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4486:7:2", + "src": "4501:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2929,26 +2856,26 @@ "visibility": "internal" } ], - "id": 227, + "id": 251, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 226, + "id": 250, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 223, + "id": 247, "name": "startGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 206, - "src": "4508:8:2", + "referencedDeclaration": 230, + "src": "4523:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2961,18 +2888,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 224, + "id": 248, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "4519:7:2", + "referencedDeclaration": 2652, + "src": "4534:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 225, + "id": 249, "isConstant": false, "isLValue": false, "isPure": false, @@ -2980,20 +2907,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4519:9:2", + "src": "4534:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4508:20:2", + "src": "4523:20:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4486:42:2" + "src": "4501:42:3" }, { "expression": { @@ -3007,12 +2934,12 @@ "arguments": [ { "argumentTypes": null, - "id": 232, + "id": 256, "name": "requiredGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 222, - "src": "4636:11:2", + "referencedDeclaration": 246, + "src": "4651:11:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3028,18 +2955,18 @@ ], "expression": { "argumentTypes": null, - "id": 230, + "id": 254, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1760, - "src": "4619:3:2", + "referencedDeclaration": 2646, + "src": "4634:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 231, + "id": 255, "isConstant": false, "isLValue": false, "isPure": true, @@ -3047,13 +2974,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4619:16:2", + "src": "4634:16:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 233, + "id": 257, "isConstant": false, "isLValue": false, "isPure": false, @@ -3061,7 +2988,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4619:29:2", + "src": "4634:29:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3075,20 +3002,20 @@ "typeString": "bytes memory" } ], - "id": 229, + "id": 253, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4612:6:2", + "src": "4627:6:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)" }, "typeName": "string" }, - "id": 234, + "id": 258, "isConstant": false, "isLValue": false, "isPure": false, @@ -3096,7 +3023,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4612:37:2", + "src": "4627:37:3", "typeDescriptions": { "typeIdentifier": "t_string_memory", "typeString": "string memory" @@ -3110,21 +3037,21 @@ "typeString": "string memory" } ], - "id": 228, + "id": 252, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 1778, - 1779 + 2664, + 2665 ], - "referencedDeclaration": 1779, - "src": "4605:6:2", + "referencedDeclaration": 2665, + "src": "4620:6:3", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 235, + "id": 259, "isConstant": false, "isLValue": false, "isPure": false, @@ -3132,57 +3059,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4605:45:2", + "src": "4620:45:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 236, + "id": 260, "nodeType": "ExpressionStatement", - "src": "4605:45:2" + "src": "4620:45:3" } ] }, "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 `execTransactionAndPaySubmitter`\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": 238, + "id": 262, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 201, + "id": 225, "modifierName": { "argumentTypes": null, - "id": 200, + "id": 224, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "4245:10:2", + "referencedDeclaration": 1687, + "src": "4260:10:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4245:10:2" + "src": "4260:10:3" } ], "name": "requiredTxGas", "nodeType": "FunctionDefinition", "parameters": { - "id": 199, + "id": 223, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 192, + "id": 216, "name": "to", "nodeType": "VariableDeclaration", - "scope": 238, - "src": "4157:10:2", + "scope": 262, + "src": "4172:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3190,10 +3117,10 @@ "typeString": "address" }, "typeName": { - "id": 191, + "id": 215, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4157:7:2", + "src": "4172:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3204,11 +3131,11 @@ }, { "constant": false, - "id": 194, + "id": 218, "name": "value", "nodeType": "VariableDeclaration", - "scope": 238, - "src": "4169:13:2", + "scope": 262, + "src": "4184:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3216,10 +3143,10 @@ "typeString": "uint256" }, "typeName": { - "id": 193, + "id": 217, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4169:7:2", + "src": "4184:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3230,11 +3157,11 @@ }, { "constant": false, - "id": 196, + "id": 220, "name": "data", "nodeType": "VariableDeclaration", - "scope": 238, - "src": "4184:10:2", + "scope": 262, + "src": "4199:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3242,10 +3169,10 @@ "typeString": "bytes" }, "typeName": { - "id": 195, + "id": 219, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4184:5:2", + "src": "4199:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3256,26 +3183,26 @@ }, { "constant": false, - "id": 198, + "id": 222, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 238, - "src": "4196:24:2", + "scope": 262, + "src": "4211: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": 197, + "id": 221, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "4196:14:2", + "referencedDeclaration": 29, + "src": "4211:14:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -3283,20 +3210,20 @@ "visibility": "internal" } ], - "src": "4156:65:2" + "src": "4171:65:3" }, "payable": false, "returnParameters": { - "id": 204, + "id": 228, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 203, + "id": 227, "name": "", "nodeType": "VariableDeclaration", - "scope": 238, - "src": "4273:7:2", + "scope": 262, + "src": "4288:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3304,10 +3231,10 @@ "typeString": "uint256" }, "typeName": { - "id": 202, + "id": 226, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4273:7:2", + "src": "4288:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3317,32 +3244,32 @@ "visibility": "internal" } ], - "src": "4272:9:2" + "src": "4287:9:3" }, - "scope": 345, - "src": "4134:523:2", + "scope": 369, + "src": "4149:523:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 297, + "id": 321, "nodeType": "Block", - "src": "4750:519:2", + "src": "4765:519:3", "statements": [ { "assignments": [ - 246 + 270 ], "declarations": [ { "constant": false, - "id": 246, + "id": 270, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "4812:17:2", + "scope": 322, + "src": "4827:17:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3350,10 +3277,10 @@ "typeString": "address" }, "typeName": { - "id": 245, + "id": 269, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4812:7:2", + "src": "4827:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3363,21 +3290,21 @@ "visibility": "internal" } ], - "id": 250, + "id": 274, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 248, + "id": 272, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4840:1:2", + "src": "4855:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3393,20 +3320,20 @@ "typeString": "int_const 0" } ], - "id": 247, + "id": 271, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4832:7:2", + "src": "4847:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 249, + "id": 273, "isConstant": false, "isLValue": false, "isPure": true, @@ -3414,25 +3341,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4832:10:2", + "src": "4847:10:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4812:30:2" + "src": "4827:30:3" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 252, + "id": 276, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "4852:20:2", + "scope": 322, + "src": "4867:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3440,10 +3367,10 @@ "typeString": "address" }, "typeName": { - "id": 251, + "id": 275, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4852:7:2", + "src": "4867:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3453,21 +3380,21 @@ "visibility": "internal" } ], - "id": 253, + "id": 277, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "4852:20:2" + "src": "4867:20:3" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 255, + "id": 279, "name": "i", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "4882:9:2", + "scope": 322, + "src": "4897:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3475,10 +3402,10 @@ "typeString": "uint256" }, "typeName": { - "id": 254, + "id": 278, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4882:7:2", + "src": "4897:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3488,33 +3415,33 @@ "visibility": "internal" } ], - "id": 256, + "id": 280, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "4882:9:2" + "src": "4897:9:3" }, { "body": { - "id": 295, + "id": 319, "nodeType": "Block", - "src": "4975:288:2", + "src": "4990:288:3", "statements": [ { "expression": { "argumentTypes": null, - "id": 273, + "id": 297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 267, + "id": 291, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 252, - "src": "4989:12:2", + "referencedDeclaration": 276, + "src": "5004:12:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3527,12 +3454,12 @@ "arguments": [ { "argumentTypes": null, - "id": 269, + "id": 293, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 240, - "src": "5015:6:2", + "referencedDeclaration": 264, + "src": "5030:6:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3540,12 +3467,12 @@ }, { "argumentTypes": null, - "id": 270, + "id": 294, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 242, - "src": "5023:10:2", + "referencedDeclaration": 266, + "src": "5038:10:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3553,12 +3480,12 @@ }, { "argumentTypes": null, - "id": 271, + "id": 295, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "5035:1:2", + "referencedDeclaration": 279, + "src": "5050:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3580,18 +3507,18 @@ "typeString": "uint256" } ], - "id": 268, + "id": 292, "name": "recoverKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "5004:10:2", + "referencedDeclaration": 1728, + "src": "5019:10:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$", "typeString": "function (bytes32,bytes memory,uint256) pure returns (address)" } }, - "id": 272, + "id": 296, "isConstant": false, "isLValue": false, "isPure": false, @@ -3599,21 +3526,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5004:33:2", + "src": "5019:33:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4989:48:2", + "src": "5004:48:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 274, + "id": 298, "nodeType": "ExpressionStatement", - "src": "4989:48:2" + "src": "5004:48:3" }, { "expression": { @@ -3625,7 +3552,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 280, + "id": 304, "isConstant": false, "isLValue": false, "isPure": false, @@ -3634,26 +3561,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 276, + "id": 300, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "5059:6:2", + "referencedDeclaration": 1117, + "src": "5074:6:3", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 278, + "id": 302, "indexExpression": { "argumentTypes": null, - "id": 277, + "id": 301, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 252, - "src": "5066:12:2", + "referencedDeclaration": 276, + "src": "5081:12:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3664,7 +3591,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5059:20:2", + "src": "5074:20:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3675,14 +3602,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 279, + "id": 303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5083:1:2", + "src": "5098:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3690,7 +3617,7 @@ }, "value": "0" }, - "src": "5059:25:2", + "src": "5074:25:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3699,14 +3626,14 @@ { "argumentTypes": null, "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 281, + "id": 305, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5086:33:2", + "src": "5101:33:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", @@ -3726,21 +3653,21 @@ "typeString": "literal_string \"Signature not provided by owner\"" } ], - "id": 275, + "id": 299, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "5051:7:2", + "referencedDeclaration": 2663, + "src": "5066:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 282, + "id": 306, "isConstant": false, "isLValue": false, "isPure": false, @@ -3748,15 +3675,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5051:69:2", + "src": "5066:69:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 283, + "id": 307, "nodeType": "ExpressionStatement", - "src": "5051:69:2" + "src": "5066:69:3" }, { "expression": { @@ -3768,19 +3695,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 287, + "id": 311, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 285, + "id": 309, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 252, - "src": "5142:12:2", + "referencedDeclaration": 276, + "src": "5157:12:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3790,18 +3717,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 286, + "id": 310, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 246, - "src": "5157:9:2", + "referencedDeclaration": 270, + "src": "5172:9:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5142:24:2", + "src": "5157:24:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3810,14 +3737,14 @@ { "argumentTypes": null, "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 288, + "id": 312, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5168:45:2", + "src": "5183:45:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", @@ -3837,21 +3764,21 @@ "typeString": "literal_string \"Signatures are not ordered by owner address\"" } ], - "id": 284, + "id": 308, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "5134:7:2", + "referencedDeclaration": 2663, + "src": "5149:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 289, + "id": 313, "isConstant": false, "isLValue": false, "isPure": false, @@ -3859,32 +3786,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5134:80:2", + "src": "5149:80:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 290, + "id": 314, "nodeType": "ExpressionStatement", - "src": "5134:80:2" + "src": "5149:80:3" }, { "expression": { "argumentTypes": null, - "id": 293, + "id": 317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 291, + "id": 315, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 246, - "src": "5228:9:2", + "referencedDeclaration": 270, + "src": "5243:9:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3894,26 +3821,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 292, + "id": 316, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 252, - "src": "5240:12:2", + "referencedDeclaration": 276, + "src": "5255:12:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5228:24:2", + "src": "5243:24:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 294, + "id": 318, "nodeType": "ExpressionStatement", - "src": "5228:24:2" + "src": "5243:24:3" } ] }, @@ -3923,19 +3850,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 263, + "id": 287, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 261, + "id": 285, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "4955:1:2", + "referencedDeclaration": 279, + "src": "4970:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3945,40 +3872,40 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 262, + "id": 286, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "4959:9:2", + "referencedDeclaration": 1121, + "src": "4974:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4955:13:2", + "src": "4970:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 296, + "id": 320, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 259, + "id": 283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 257, + "id": 281, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "4948:1:2", + "referencedDeclaration": 279, + "src": "4963:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3989,14 +3916,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 258, + "id": 282, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4952:1:2", + "src": "4967:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4004,20 +3931,20 @@ }, "value": "0" }, - "src": "4948:5:2", + "src": "4963:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 260, + "id": 284, "nodeType": "ExpressionStatement", - "src": "4948:5:2" + "src": "4963:5:3" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 265, + "id": 289, "isConstant": false, "isLValue": false, "isPure": false, @@ -4025,15 +3952,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4970:3:2", + "src": "4985:3:3", "subExpression": { "argumentTypes": null, - "id": 264, + "id": 288, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "4970:1:2", + "referencedDeclaration": 279, + "src": "4985:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4044,17 +3971,17 @@ "typeString": "uint256" } }, - "id": 266, + "id": 290, "nodeType": "ExpressionStatement", - "src": "4970:3:2" + "src": "4985:3:3" }, "nodeType": "ForStatement", - "src": "4943:320:2" + "src": "4958:320:3" } ] }, "documentation": null, - "id": 298, + "id": 322, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4062,16 +3989,16 @@ "name": "checkHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 243, + "id": 267, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 240, + "id": 264, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "4682:14:2", + "scope": 322, + "src": "4697:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4079,10 +4006,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 239, + "id": 263, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4682:7:2", + "src": "4697:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4093,11 +4020,11 @@ }, { "constant": false, - "id": 242, + "id": 266, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "4698:16:2", + "scope": 322, + "src": "4713:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4105,10 +4032,10 @@ "typeString": "bytes" }, "typeName": { - "id": 241, + "id": 265, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4698:5:2", + "src": "4713:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4118,26 +4045,26 @@ "visibility": "internal" } ], - "src": "4681:34:2" + "src": "4696:34:3" }, "payable": false, "returnParameters": { - "id": 244, + "id": 268, "nodeType": "ParameterList", "parameters": [], - "src": "4750:0:2" + "src": "4765:0:3" }, - "scope": 345, - "src": "4663:606:2", + "scope": 369, + "src": "4678:606:3", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 343, + "id": 367, "nodeType": "Block", - "src": "6193:176:2", + "src": "6208:176:3", "statements": [ { "expression": { @@ -4152,14 +4079,14 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 325, + "id": 349, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6255:4:2", + "src": "6270:4:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", @@ -4175,20 +4102,20 @@ "typeString": "int_const 25" } ], - "id": 324, + "id": 348, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6250:4:2", + "src": "6265:4:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 326, + "id": 350, "isConstant": false, "isLValue": false, "isPure": true, @@ -4196,7 +4123,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6250:10:2", + "src": "6265:10:3", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -4208,14 +4135,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 328, + "id": 352, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6267:1:2", + "src": "6282:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4231,20 +4158,20 @@ "typeString": "int_const 0" } ], - "id": 327, + "id": 351, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6262:4:2", + "src": "6277:4:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 329, + "id": 353, "isConstant": false, "isLValue": false, "isPure": true, @@ -4252,7 +4179,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6262:7:2", + "src": "6277:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -4260,25 +4187,25 @@ }, { "argumentTypes": null, - "id": 330, + "id": 354, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1804, - "src": "6271:4:2", + "referencedDeclaration": 2694, + "src": "6286:4:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$345", + "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$369", "typeString": "contract GnosisSafePersonalEdition" } }, { "argumentTypes": null, - "id": 331, + "id": 355, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 300, - "src": "6277:2:2", + "referencedDeclaration": 324, + "src": "6292:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4286,12 +4213,12 @@ }, { "argumentTypes": null, - "id": 332, + "id": 356, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 302, - "src": "6281:5:2", + "referencedDeclaration": 326, + "src": "6296:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4299,12 +4226,12 @@ }, { "argumentTypes": null, - "id": 333, + "id": 357, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6288:4:2", + "referencedDeclaration": 328, + "src": "6303:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -4312,25 +4239,25 @@ }, { "argumentTypes": null, - "id": 334, + "id": 358, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 306, - "src": "6294:9:2", + "referencedDeclaration": 330, + "src": "6309:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 335, + "id": 359, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 308, - "src": "6305:9:2", + "referencedDeclaration": 332, + "src": "6320:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4338,12 +4265,12 @@ }, { "argumentTypes": null, - "id": 336, + "id": 360, "name": "dataGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "6316:7:2", + "referencedDeclaration": 334, + "src": "6331:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4351,12 +4278,12 @@ }, { "argumentTypes": null, - "id": 337, + "id": 361, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 312, - "src": "6325:8:2", + "referencedDeclaration": 336, + "src": "6340:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4364,12 +4291,12 @@ }, { "argumentTypes": null, - "id": 338, + "id": 362, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "6335:8:2", + "referencedDeclaration": 338, + "src": "6350:8:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4377,12 +4304,12 @@ }, { "argumentTypes": null, - "id": 339, + "id": 363, "name": "_nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "6345:6:2", + "referencedDeclaration": 340, + "src": "6360:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4400,7 +4327,7 @@ "typeString": "bytes1" }, { - "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$345", + "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$369", "typeString": "contract GnosisSafePersonalEdition" }, { @@ -4416,7 +4343,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -4442,18 +4369,18 @@ ], "expression": { "argumentTypes": null, - "id": 322, + "id": 346, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1760, - "src": "6233:3:2", + "referencedDeclaration": 2646, + "src": "6248:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 323, + "id": 347, "isConstant": false, "isLValue": false, "isPure": true, @@ -4461,13 +4388,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6233:16:2", + "src": "6248:16:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 340, + "id": 364, "isConstant": false, "isLValue": false, "isPure": false, @@ -4475,7 +4402,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6233:119:2", + "src": "6248:119:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -4489,18 +4416,18 @@ "typeString": "bytes memory" } ], - "id": 321, + "id": 345, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "6210:9:2", + "referencedDeclaration": 2653, + "src": "6225:9:3", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 341, + "id": 365, "isConstant": false, "isLValue": false, "isPure": false, @@ -4508,21 +4435,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6210:152:2", + "src": "6225:152:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 320, - "id": 342, + "functionReturnParameters": 344, + "id": 366, "nodeType": "Return", - "src": "6203:159:2" + "src": "6218: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 gasToken Token address (or 0 if ETH) that is used for the payment.\n @param _nonce Transaction nonce.\n @return Transaction hash.", - "id": 344, + "id": 368, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4530,16 +4457,16 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 317, + "id": 341, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 300, + "id": 324, "name": "to", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "5906:10:2", + "scope": 368, + "src": "5921:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4547,10 +4474,10 @@ "typeString": "address" }, "typeName": { - "id": 299, + "id": 323, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5906:7:2", + "src": "5921:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4561,11 +4488,11 @@ }, { "constant": false, - "id": 302, + "id": 326, "name": "value", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "5927:13:2", + "scope": 368, + "src": "5942:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4573,10 +4500,10 @@ "typeString": "uint256" }, "typeName": { - "id": 301, + "id": 325, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5927:7:2", + "src": "5942:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4587,11 +4514,11 @@ }, { "constant": false, - "id": 304, + "id": 328, "name": "data", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "5951:10:2", + "scope": 368, + "src": "5966:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4599,10 +4526,10 @@ "typeString": "bytes" }, "typeName": { - "id": 303, + "id": 327, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5951:5:2", + "src": "5966:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4613,26 +4540,26 @@ }, { "constant": false, - "id": 306, + "id": 330, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "5972:24:2", + "scope": 368, + "src": "5987: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": 305, + "id": 329, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "5972:14:2", + "referencedDeclaration": 29, + "src": "5987:14:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -4641,11 +4568,11 @@ }, { "constant": false, - "id": 308, + "id": 332, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "6007:17:2", + "scope": 368, + "src": "6022:17:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4653,10 +4580,10 @@ "typeString": "uint256" }, "typeName": { - "id": 307, + "id": 331, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6007:7:2", + "src": "6022:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4667,11 +4594,11 @@ }, { "constant": false, - "id": 310, + "id": 334, "name": "dataGas", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "6035:15:2", + "scope": 368, + "src": "6050:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4679,10 +4606,10 @@ "typeString": "uint256" }, "typeName": { - "id": 309, + "id": 333, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6035:7:2", + "src": "6050:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4693,11 +4620,11 @@ }, { "constant": false, - "id": 312, + "id": 336, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "6061:16:2", + "scope": 368, + "src": "6076:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4705,10 +4632,10 @@ "typeString": "uint256" }, "typeName": { - "id": 311, + "id": 335, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6061:7:2", + "src": "6076:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4719,11 +4646,11 @@ }, { "constant": false, - "id": 314, + "id": 338, "name": "gasToken", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "6088:16:2", + "scope": 368, + "src": "6103:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4731,10 +4658,10 @@ "typeString": "address" }, "typeName": { - "id": 313, + "id": 337, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6088:7:2", + "src": "6103:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4745,11 +4672,11 @@ }, { "constant": false, - "id": 316, + "id": 340, "name": "_nonce", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "6114:14:2", + "scope": 368, + "src": "6129:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4757,10 +4684,10 @@ "typeString": "uint256" }, "typeName": { - "id": 315, + "id": 339, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6114:7:2", + "src": "6129:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4770,20 +4697,20 @@ "visibility": "internal" } ], - "src": "5896:238:2" + "src": "5911:238:3" }, "payable": false, "returnParameters": { - "id": 320, + "id": 344, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 319, + "id": 343, "name": "", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "6180:7:2", + "scope": 368, + "src": "6195:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4791,10 +4718,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 318, + "id": 342, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6180:7:2", + "src": "6195:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4804,82 +4731,82 @@ "visibility": "internal" } ], - "src": "6179:9:2" + "src": "6194:9:3" }, - "scope": 345, - "src": "5869:500:2", + "scope": 369, + "src": "5884:500:3", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 346, - "src": "484:5887:2" + "scope": 370, + "src": "483:5903:3" } ], - "src": "0:6372:2" + "src": "0:6387:3" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafePersonalEdition.sol", "exportedSymbols": { "GnosisSafePersonalEdition": [ - 345 + 369 ] }, - "id": 346, + "id": 370, "nodeType": "SourceUnit", "nodes": [ { - "id": 41, + "id": 65, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:2" - }, - { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ERC20Token.sol", - "file": "./interfaces/ERC20Token.sol", - "id": 42, - "nodeType": "ImportDirective", - "scope": 346, - "sourceUnit": 1572, - "src": "24:37:2", - "symbolAliases": [], - "unitAlias": "" + "src": "0:23:3" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafe.sol", "file": "./GnosisSafe.sol", - "id": 43, + "id": 66, "nodeType": "ImportDirective", - "scope": 346, - "sourceUnit": 40, - "src": "62:26:2", + "scope": 370, + "sourceUnit": 64, + "src": "24:26:3", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 44, + "id": 67, "nodeType": "ImportDirective", - "scope": 346, - "sourceUnit": 609, - "src": "89:26:2", + "scope": 370, + "sourceUnit": 633, + "src": "51:26:3", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", "file": "./SignatureValidator.sol", - "id": 45, + "id": 68, "nodeType": "ImportDirective", - "scope": 346, - "sourceUnit": 1506, - "src": "116:34:2", + "scope": 370, + "sourceUnit": 1745, + "src": "78:34:3", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", + "file": "./SecuredTokenTransfer.sol", + "id": 69, + "nodeType": "ImportDirective", + "scope": 370, + "sourceUnit": 1672, + "src": "113:36:3", "symbolAliases": [], "unitAlias": "" }, @@ -4889,88 +4816,108 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 46, + "id": 70, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 608, - "src": "522:10:2", + "referencedDeclaration": 632, + "src": "521:10:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$608", + "typeIdentifier": "t_contract$_MasterCopy_$632", "typeString": "contract MasterCopy" } }, - "id": 47, + "id": 71, "nodeType": "InheritanceSpecifier", - "src": "522:10:2" + "src": "521:10:3" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 48, + "id": 72, "name": "GnosisSafe", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 39, - "src": "534:10:2", + "referencedDeclaration": 63, + "src": "533:10:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafe_$39", + "typeIdentifier": "t_contract$_GnosisSafe_$63", "typeString": "contract GnosisSafe" } }, - "id": 49, + "id": 73, "nodeType": "InheritanceSpecifier", - "src": "534:10:2" + "src": "533:10:3" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 50, + "id": 74, "name": "SignatureValidator", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1505, - "src": "546:18:2", + "referencedDeclaration": 1744, + "src": "545:18:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureValidator_$1505", + "typeIdentifier": "t_contract$_SignatureValidator_$1744", "typeString": "contract SignatureValidator" } }, - "id": 51, + "id": 75, "nodeType": "InheritanceSpecifier", - "src": "546:18:2" + "src": "545:18:3" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 76, + "name": "SecuredTokenTransfer", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1671, + "src": "565:20:3", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1671", + "typeString": "contract SecuredTokenTransfer" + } + }, + "id": 77, + "nodeType": "InheritanceSpecifier", + "src": "565:20:3" } ], "contractDependencies": [ - 39, - 608, - 1022, - 1432, - 1449, - 1505 + 63, + 632, + 1103, + 1511, + 1671, + 1688, + 1744 ], "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 - \n @author Ricardo Guilherme Schmidt - (Status Research & Development GmbH) - Gas Token Payment", "fullyImplemented": true, - "id": 345, + "id": 369, "linearizedBaseContracts": [ - 345, - 1505, - 39, - 1432, - 1022, - 608, - 1449 + 369, + 1671, + 1744, + 63, + 1511, + 1103, + 632, + 1688 ], "name": "GnosisSafePersonalEdition", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 54, + "id": 80, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 345, - "src": "572:60:2", + "scope": 369, + "src": "593:60:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4978,10 +4925,10 @@ "typeString": "string" }, "typeName": { - "id": 52, + "id": 78, "name": "string", "nodeType": "ElementaryTypeName", - "src": "572:6:2", + "src": "593:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -4990,14 +4937,14 @@ "value": { "argumentTypes": null, "hexValue": "476e6f736973205361666520506572736f6e616c2045646974696f6e", - "id": 53, + "id": 79, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "602:30:2", + "src": "623:30:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b657d2895d137bf089ce1df776b732639b1ebc2a3aec3bd837e225e9e0965154", @@ -5009,11 +4956,11 @@ }, { "constant": true, - "id": 57, + "id": 83, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 345, - "src": "638:40:2", + "scope": 369, + "src": "659:40:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5021,10 +4968,10 @@ "typeString": "string" }, "typeName": { - "id": 55, + "id": 81, "name": "string", "nodeType": "ElementaryTypeName", - "src": "638:6:2", + "src": "659:6:3", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -5033,14 +4980,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 56, + "id": 82, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "671:7:2", + "src": "692:7:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -5053,21 +5000,21 @@ { "anonymous": false, "documentation": null, - "id": 61, + "id": 87, "name": "ExecutionFailed", "nodeType": "EventDefinition", "parameters": { - "id": 60, + "id": 86, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 59, + "id": 85, "indexed": false, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 61, - "src": "711:14:2", + "scope": 87, + "src": "732:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5075,10 +5022,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 58, + "id": 84, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "711:7:2", + "src": "732:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5088,17 +5035,17 @@ "visibility": "internal" } ], - "src": "710:16:2" + "src": "731:16:3" }, - "src": "689:38:2" + "src": "710:38:3" }, { "constant": false, - "id": 63, + "id": 89, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 345, - "src": "733:20:2", + "scope": 369, + "src": "754:20:3", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5106,10 +5053,10 @@ "typeString": "uint256" }, "typeName": { - "id": 62, + "id": 88, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "733:7:2", + "src": "754:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5120,22 +5067,22 @@ }, { "body": { - "id": 189, + "id": 213, "nodeType": "Block", - "src": "1983:1224:2", + "src": "2004:1218:3", "statements": [ { "assignments": [ - 87 + 113 ], "declarations": [ { "constant": false, - "id": 87, + "id": 113, "name": "startGas", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1993:16:2", + "scope": 214, + "src": "2014:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5143,10 +5090,10 @@ "typeString": "uint256" }, "typeName": { - "id": 86, + "id": 112, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1993:7:2", + "src": "2014:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5156,24 +5103,24 @@ "visibility": "internal" } ], - "id": 90, + "id": 116, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 88, + "id": 114, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "2012:7:2", + "referencedDeclaration": 2652, + "src": "2033:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 89, + "id": 115, "isConstant": false, "isLValue": false, "isPure": false, @@ -5181,27 +5128,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2012:9:2", + "src": "2033:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "1993:28:2" + "src": "2014:28:3" }, { "assignments": [ - 92 + 118 ], "declarations": [ { "constant": false, - "id": 92, + "id": 118, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "2031:14:2", + "scope": 214, + "src": "2052:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5209,10 +5156,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 91, + "id": 117, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2031:7:2", + "src": "2052:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5222,18 +5169,18 @@ "visibility": "internal" } ], - "id": 104, + "id": 130, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 94, + "id": 120, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "2067:2:2", + "referencedDeclaration": 91, + "src": "2088:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5241,12 +5188,12 @@ }, { "argumentTypes": null, - "id": 95, + "id": 121, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "2071:5:2", + "referencedDeclaration": 93, + "src": "2092:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5254,12 +5201,12 @@ }, { "argumentTypes": null, - "id": 96, + "id": 122, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "2078:4:2", + "referencedDeclaration": 95, + "src": "2099:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5267,25 +5214,25 @@ }, { "argumentTypes": null, - "id": 97, + "id": 123, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "2084:9:2", + "referencedDeclaration": 97, + "src": "2105:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 98, + "id": 124, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "2095:9:2", + "referencedDeclaration": 99, + "src": "2116:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5293,12 +5240,12 @@ }, { "argumentTypes": null, - "id": 99, + "id": 125, "name": "dataGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "2106:7:2", + "referencedDeclaration": 101, + "src": "2127:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5306,12 +5253,12 @@ }, { "argumentTypes": null, - "id": 100, + "id": 126, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2115:8:2", + "referencedDeclaration": 103, + "src": "2136:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5319,12 +5266,12 @@ }, { "argumentTypes": null, - "id": 101, + "id": 127, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "2125:8:2", + "referencedDeclaration": 105, + "src": "2146:8:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5332,12 +5279,12 @@ }, { "argumentTypes": null, - "id": 102, + "id": 128, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "2135:5:2", + "referencedDeclaration": 89, + "src": "2156:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5359,7 +5306,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -5383,18 +5330,18 @@ "typeString": "uint256" } ], - "id": 93, + "id": 119, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 344, - "src": "2048:18:2", + "referencedDeclaration": 368, + "src": "2069: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_address_$_t_uint256_$returns$_t_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": 103, + "id": 129, "isConstant": false, "isLValue": false, "isPure": false, @@ -5402,14 +5349,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2048:93:2", + "src": "2069:93:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2031:110:2" + "src": "2052:110:3" }, { "expression": { @@ -5417,12 +5364,12 @@ "arguments": [ { "argumentTypes": null, - "id": 106, + "id": 132, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "2161:6:2", + "referencedDeclaration": 118, + "src": "2182:6:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5430,12 +5377,12 @@ }, { "argumentTypes": null, - "id": 107, + "id": 133, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 81, - "src": "2169:10:2", + "referencedDeclaration": 107, + "src": "2190:10:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5453,18 +5400,18 @@ "typeString": "bytes memory" } ], - "id": 105, + "id": 131, "name": "checkHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 298, - "src": "2151:9:2", + "referencedDeclaration": 322, + "src": "2172:9:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes32,bytes memory) view" } }, - "id": 108, + "id": 134, "isConstant": false, "isLValue": false, "isPure": false, @@ -5472,20 +5419,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2151:29:2", + "src": "2172:29:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 109, + "id": 135, "nodeType": "ExpressionStatement", - "src": "2151:29:2" + "src": "2172:29:3" }, { "expression": { "argumentTypes": null, - "id": 111, + "id": 137, "isConstant": false, "isLValue": false, "isPure": false, @@ -5493,15 +5440,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2241:7:2", + "src": "2262:7:3", "subExpression": { "argumentTypes": null, - "id": 110, + "id": 136, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "2241:5:2", + "referencedDeclaration": 89, + "src": "2262:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5512,9 +5459,9 @@ "typeString": "uint256" } }, - "id": 112, + "id": 138, "nodeType": "ExpressionStatement", - "src": "2241:7:2" + "src": "2262:7:3" }, { "expression": { @@ -5526,7 +5473,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 117, + "id": 143, "isConstant": false, "isLValue": false, "isPure": false, @@ -5536,18 +5483,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 114, + "id": 140, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "2266:7:2", + "referencedDeclaration": 2652, + "src": "2287:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 115, + "id": 141, "isConstant": false, "isLValue": false, "isPure": false, @@ -5555,7 +5502,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2266:9:2", + "src": "2287:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5565,18 +5512,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 116, + "id": 142, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "2279:9:2", + "referencedDeclaration": 99, + "src": "2300:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2266:22:2", + "src": "2287:22:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5585,14 +5532,14 @@ { "argumentTypes": null, "hexValue": "4e6f7420656e6f7567682067617320746f20657865637574652073616665207472616e73616374696f6e", - "id": 118, + "id": 144, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2290:44:2", + "src": "2311:44:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e7ccb05a0f2c66d12451cdfc6bbab488c38ab704d0f6af9ad18763542e9e5f18", @@ -5612,21 +5559,21 @@ "typeString": "literal_string \"Not enough gas to execute safe transaction\"" } ], - "id": 113, + "id": 139, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2258:7:2", + "referencedDeclaration": 2663, + "src": "2279:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 119, + "id": 145, "isConstant": false, "isLValue": false, "isPure": false, @@ -5634,32 +5581,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2258:77:2", + "src": "2279:77:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 120, + "id": 146, "nodeType": "ExpressionStatement", - "src": "2258:77:2" + "src": "2279:77:3" }, { "expression": { "argumentTypes": null, - "id": 129, + "id": 155, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 121, + "id": 147, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "2345:7:2", + "referencedDeclaration": 110, + "src": "2366:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5672,12 +5619,12 @@ "arguments": [ { "argumentTypes": null, - "id": 123, + "id": 149, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "2363:2:2", + "referencedDeclaration": 91, + "src": "2384:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5685,12 +5632,12 @@ }, { "argumentTypes": null, - "id": 124, + "id": 150, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "2367:5:2", + "referencedDeclaration": 93, + "src": "2388:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5698,12 +5645,12 @@ }, { "argumentTypes": null, - "id": 125, + "id": 151, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "2374:4:2", + "referencedDeclaration": 95, + "src": "2395:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5711,25 +5658,25 @@ }, { "argumentTypes": null, - "id": 126, + "id": 152, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 71, - "src": "2380:9:2", + "referencedDeclaration": 97, + "src": "2401:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 127, + "id": 153, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "2391:9:2", + "referencedDeclaration": 99, + "src": "2412:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5751,7 +5698,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -5759,18 +5706,18 @@ "typeString": "uint256" } ], - "id": 122, + "id": 148, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "2355:7:2", + "referencedDeclaration": 992, + "src": "2376: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": 154, "isConstant": false, "isLValue": false, "isPure": false, @@ -5778,26 +5725,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2355:46:2", + "src": "2376:46:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2345:56:2", + "src": "2366:56:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 130, + "id": 156, "nodeType": "ExpressionStatement", - "src": "2345:56:2" + "src": "2366:56:3" }, { "condition": { "argumentTypes": null, - "id": 132, + "id": 158, "isConstant": false, "isLValue": false, "isPure": false, @@ -5805,15 +5752,15 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2415:8:2", + "src": "2436:8:3", "subExpression": { "argumentTypes": null, - "id": 131, + "id": 157, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "2416:7:2", + "referencedDeclaration": 110, + "src": "2437:7:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5825,13 +5772,13 @@ } }, "falseBody": null, - "id": 138, + "id": 164, "nodeType": "IfStatement", - "src": "2411:67:2", + "src": "2432:67:3", "trueBody": { - "id": 137, + "id": 163, "nodeType": "Block", - "src": "2425:53:2", + "src": "2446:53:3", "statements": [ { "eventCall": { @@ -5839,12 +5786,12 @@ "arguments": [ { "argumentTypes": null, - "id": 134, + "id": 160, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "2460:6:2", + "referencedDeclaration": 118, + "src": "2481:6:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5858,18 +5805,18 @@ "typeString": "bytes32" } ], - "id": 133, + "id": 159, "name": "ExecutionFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "2444:15:2", + "referencedDeclaration": 87, + "src": "2465:15:3", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 135, + "id": 161, "isConstant": false, "isLValue": false, "isPure": false, @@ -5877,15 +5824,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2444:23:2", + "src": "2465:23:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 136, + "id": 162, "nodeType": "EmitStatement", - "src": "2439:28:2" + "src": "2460:28:3" } ] } @@ -5897,19 +5844,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 141, + "id": 167, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 139, + "id": 165, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2631:8:2", + "referencedDeclaration": 103, + "src": "2652:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5920,14 +5867,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 140, + "id": 166, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2642:1:2", + "src": "2663:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5935,33 +5882,33 @@ }, "value": "0" }, - "src": "2631:12:2", + "src": "2652:12:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 188, + "id": 212, "nodeType": "IfStatement", - "src": "2627:572:2", + "src": "2648:566:3", "trueBody": { - "id": 187, + "id": 211, "nodeType": "Block", - "src": "2645:554:2", + "src": "2666:548:3", "statements": [ { "assignments": [ - 143 + 169 ], "declarations": [ { "constant": false, - "id": 143, + "id": 169, "name": "gasCosts", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "2659:16:2", + "scope": 214, + "src": "2680:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5969,10 +5916,10 @@ "typeString": "uint256" }, "typeName": { - "id": 142, + "id": 168, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2659:7:2", + "src": "2680:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5982,14 +5929,14 @@ "visibility": "internal" } ], - "id": 151, + "id": 177, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 150, + "id": 176, "isConstant": false, "isLValue": false, "isPure": false, @@ -6003,19 +5950,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 147, + "id": 173, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 144, + "id": 170, "name": "startGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 87, - "src": "2679:8:2", + "referencedDeclaration": 113, + "src": "2700:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6028,18 +5975,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 145, + "id": 171, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "2690:7:2", + "referencedDeclaration": 2652, + "src": "2711:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 146, + "id": 172, "isConstant": false, "isLValue": false, "isPure": false, @@ -6047,27 +5994,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2690:9:2", + "src": "2711:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2679:20:2", + "src": "2700:20:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 148, + "id": 174, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "2678:22:2", + "src": "2699:22:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6077,38 +6024,38 @@ "operator": "+", "rightExpression": { "argumentTypes": null, - "id": 149, + "id": 175, "name": "dataGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 75, - "src": "2703:7:2", + "referencedDeclaration": 101, + "src": "2724:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2678:32:2", + "src": "2699:32:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2659:51:2" + "src": "2680:51:3" }, { "assignments": [ - 153 + 179 ], "declarations": [ { "constant": false, - "id": 153, + "id": 179, "name": "amount", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "2724:14:2", + "scope": 214, + "src": "2745:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6116,10 +6063,10 @@ "typeString": "uint256" }, "typeName": { - "id": 152, + "id": 178, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2724:7:2", + "src": "2745:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6129,26 +6076,26 @@ "visibility": "internal" } ], - "id": 157, + "id": 183, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 156, + "id": 182, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 154, + "id": 180, "name": "gasCosts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 143, - "src": "2741:8:2", + "referencedDeclaration": 169, + "src": "2762:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6158,25 +6105,25 @@ "operator": "*", "rightExpression": { "argumentTypes": null, - "id": 155, + "id": 181, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "2752:8:2", + "referencedDeclaration": 103, + "src": "2773:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2741:19:2", + "src": "2762:19:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2724:36:2" + "src": "2745:36:3" }, { "condition": { @@ -6185,19 +6132,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 162, + "id": 188, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 158, + "id": 184, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "2778:8:2", + "referencedDeclaration": 105, + "src": "2799:8:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6211,14 +6158,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 160, + "id": 186, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2798:1:2", + "src": "2819:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6234,20 +6181,20 @@ "typeString": "int_const 0" } ], - "id": 159, + "id": 185, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2790:7:2", + "src": "2811:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 161, + "id": 187, "isConstant": false, "isLValue": false, "isPure": true, @@ -6255,22 +6202,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2790:10:2", + "src": "2811:10:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2778:22:2", + "src": "2799:22:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 185, + "id": 209, "nodeType": "Block", - "src": "2994:195:2", + "src": "3015:189:3", "statements": [ { "expression": { @@ -6281,28 +6228,12 @@ "arguments": [ { "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 178, - "name": "tx", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1785, - "src": "3117:2:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_transaction", - "typeString": "tx" - } - }, - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "origin", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3117:9:2", + "id": 201, + "name": "gasToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 105, + "src": "3122:8:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6310,12 +6241,41 @@ }, { "argumentTypes": null, - "id": 180, + "expression": { + "argumentTypes": null, + "id": 202, + "name": "tx", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2671, + "src": "3132:2:3", + "typeDescriptions": { + "typeIdentifier": "t_magic_transaction", + "typeString": "tx" + } + }, + "id": 203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "origin", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3132:9:3", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 204, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "3128:6:2", + "referencedDeclaration": 179, + "src": "3143:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6324,6 +6284,10 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, { "typeIdentifier": "t_address", "typeString": "address" @@ -6333,70 +6297,18 @@ "typeString": "uint256" } ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 175, - "name": "gasToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "3098:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 174, - "name": "ERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1571, - "src": "3087:10:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Token_$1571_$", - "typeString": "type(contract ERC20Token)" - } - }, - "id": 176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3087:20:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Token_$1571", - "typeString": "contract ERC20Token" - } - }, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1525, - "src": "3087:29:2", + "id": 200, + "name": "transferToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1670, + "src": "3108:13:3", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" } }, - "id": 181, + "id": 205, "isConstant": false, "isLValue": false, "isPure": false, @@ -6404,7 +6316,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3087:48:2", + "src": "3108:42:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6413,14 +6325,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792067617320636f737473207769746820746f6b656e", - "id": 182, + "id": 206, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3137:36:2", + "src": "3152:36:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8560a13547eca5648355c8db1a9f8653b6f657d31d476c36bca25e47b45b08f4", @@ -6440,21 +6352,21 @@ "typeString": "literal_string \"Could not pay gas costs with token\"" } ], - "id": 173, + "id": 199, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "3079:7:2", + "referencedDeclaration": 2663, + "src": "3100:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 183, + "id": 207, "isConstant": false, "isLValue": false, "isPure": false, @@ -6462,25 +6374,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3079:95:2", + "src": "3100:89:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 184, + "id": 208, "nodeType": "ExpressionStatement", - "src": "3079:95:2" + "src": "3100:89:3" } ] }, - "id": 186, + "id": 210, "nodeType": "IfStatement", - "src": "2774:415:2", + "src": "2795:409:3", "trueBody": { - "id": 172, + "id": 198, "nodeType": "Block", - "src": "2802:186:2", + "src": "2823:186:3", "statements": [ { "expression": { @@ -6491,12 +6403,12 @@ "arguments": [ { "argumentTypes": null, - "id": 167, + "id": 193, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 153, - "src": "2927:6:2", + "referencedDeclaration": 179, + "src": "2948:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6514,18 +6426,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 164, + "id": 190, "name": "tx", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1785, - "src": "2912:2:2", + "referencedDeclaration": 2671, + "src": "2933:2:3", "typeDescriptions": { "typeIdentifier": "t_magic_transaction", "typeString": "tx" } }, - "id": 165, + "id": 191, "isConstant": false, "isLValue": false, "isPure": false, @@ -6533,13 +6445,13 @@ "memberName": "origin", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2912:9:2", + "src": "2933:9:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 166, + "id": 192, "isConstant": false, "isLValue": false, "isPure": false, @@ -6547,13 +6459,13 @@ "memberName": "send", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2912:14:2", + "src": "2933:14:3", "typeDescriptions": { "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) returns (bool)" } }, - "id": 168, + "id": 194, "isConstant": false, "isLValue": false, "isPure": false, @@ -6561,7 +6473,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2912:22:2", + "src": "2933:22:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6570,14 +6482,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f74207061792067617320636f7374732077697468206574686572", - "id": 169, + "id": 195, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2936:36:2", + "src": "2957:36:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e2a11e15f7be1214c1340779ad55027af8aa33aee6cb521776a28a0a44aea377", @@ -6597,21 +6509,21 @@ "typeString": "literal_string \"Could not pay gas costs with ether\"" } ], - "id": 163, + "id": 189, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2904:7:2", + "referencedDeclaration": 2663, + "src": "2925:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 170, + "id": 196, "isConstant": false, "isLValue": false, "isPure": false, @@ -6619,15 +6531,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2904:69:2", + "src": "2925:69:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 171, + "id": 197, "nodeType": "ExpressionStatement", - "src": "2904:69:2" + "src": "2925:69:3" } ] } @@ -6638,7 +6550,7 @@ ] }, "documentation": "@dev Allows to execute a Safe transaction confirmed by required number of owners and then pays the account that submitted the transaction.\n Note: The fees are always transfered, even if the user transaction fails. \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 and to pay the payment transfer\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 signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", - "id": 190, + "id": 214, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6646,16 +6558,16 @@ "name": "execTransactionAndPaySubmitter", "nodeType": "FunctionDefinition", "parameters": { - "id": 82, + "id": 108, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 65, + "id": 91, "name": "to", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1705:10:2", + "scope": 214, + "src": "1726:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6663,10 +6575,10 @@ "typeString": "address" }, "typeName": { - "id": 64, + "id": 90, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1705:7:2", + "src": "1726:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6677,11 +6589,11 @@ }, { "constant": false, - "id": 67, + "id": 93, "name": "value", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1726:13:2", + "scope": 214, + "src": "1747:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6689,10 +6601,10 @@ "typeString": "uint256" }, "typeName": { - "id": 66, + "id": 92, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1726:7:2", + "src": "1747:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6703,11 +6615,11 @@ }, { "constant": false, - "id": 69, + "id": 95, "name": "data", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1750:10:2", + "scope": 214, + "src": "1771:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6715,10 +6627,10 @@ "typeString": "bytes" }, "typeName": { - "id": 68, + "id": 94, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1750:5:2", + "src": "1771:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6729,26 +6641,26 @@ }, { "constant": false, - "id": 71, + "id": 97, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1771:24:2", + "scope": 214, + "src": "1792: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": 96, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "1771:14:2", + "referencedDeclaration": 29, + "src": "1792:14:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -6757,11 +6669,11 @@ }, { "constant": false, - "id": 73, + "id": 99, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1806:17:2", + "scope": 214, + "src": "1827:17:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6769,10 +6681,10 @@ "typeString": "uint256" }, "typeName": { - "id": 72, + "id": 98, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1806:7:2", + "src": "1827:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6783,11 +6695,11 @@ }, { "constant": false, - "id": 75, + "id": 101, "name": "dataGas", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1833:15:2", + "scope": 214, + "src": "1854:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6795,10 +6707,10 @@ "typeString": "uint256" }, "typeName": { - "id": 74, + "id": 100, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1833:7:2", + "src": "1854:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6809,11 +6721,11 @@ }, { "constant": false, - "id": 77, + "id": 103, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1858:16:2", + "scope": 214, + "src": "1879:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6821,10 +6733,10 @@ "typeString": "uint256" }, "typeName": { - "id": 76, + "id": 102, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1858:7:2", + "src": "1879:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6835,11 +6747,11 @@ }, { "constant": false, - "id": 79, + "id": 105, "name": "gasToken", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1884:16:2", + "scope": 214, + "src": "1905:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6847,10 +6759,10 @@ "typeString": "address" }, "typeName": { - "id": 78, + "id": 104, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1884:7:2", + "src": "1905:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6861,11 +6773,11 @@ }, { "constant": false, - "id": 81, + "id": 107, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1910:16:2", + "scope": 214, + "src": "1931:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6873,10 +6785,10 @@ "typeString": "bytes" }, "typeName": { - "id": 80, + "id": 106, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1910:5:2", + "src": "1931:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6886,20 +6798,20 @@ "visibility": "internal" } ], - "src": "1695:237:2" + "src": "1716:237:3" }, "payable": false, "returnParameters": { - "id": 85, + "id": 111, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 84, + "id": 110, "name": "success", "nodeType": "VariableDeclaration", - "scope": 190, - "src": "1965:12:2", + "scope": 214, + "src": "1986:12:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6907,10 +6819,10 @@ "typeString": "bool" }, "typeName": { - "id": 83, + "id": 109, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "1965:4:2", + "src": "1986:4:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6920,32 +6832,32 @@ "visibility": "internal" } ], - "src": "1964:14:2" + "src": "1985:14:3" }, - "scope": 345, - "src": "1656:1551:2", + "scope": 369, + "src": "1677:1545:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 237, + "id": 261, "nodeType": "Block", - "src": "4286:371:2", + "src": "4301:371:3", "statements": [ { "assignments": [ - 206 + 230 ], "declarations": [ { "constant": false, - "id": 206, + "id": 230, "name": "startGas", "nodeType": "VariableDeclaration", - "scope": 238, - "src": "4296:16:2", + "scope": 262, + "src": "4311:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6953,10 +6865,10 @@ "typeString": "uint256" }, "typeName": { - "id": 205, + "id": 229, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4296:7:2", + "src": "4311:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6966,24 +6878,24 @@ "visibility": "internal" } ], - "id": 209, + "id": 233, "initialValue": { "argumentTypes": null, "arguments": [], "expression": { "argumentTypes": [], - "id": 207, + "id": 231, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "4315:7:2", + "referencedDeclaration": 2652, + "src": "4330:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 208, + "id": 232, "isConstant": false, "isLValue": false, "isPure": false, @@ -6991,14 +6903,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4315:9:2", + "src": "4330:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4296:28:2" + "src": "4311:28:3" }, { "expression": { @@ -7009,12 +6921,12 @@ "arguments": [ { "argumentTypes": null, - "id": 212, + "id": 236, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 192, - "src": "4437:2:2", + "referencedDeclaration": 216, + "src": "4452:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7022,12 +6934,12 @@ }, { "argumentTypes": null, - "id": 213, + "id": 237, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 194, - "src": "4441:5:2", + "referencedDeclaration": 218, + "src": "4456:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7035,12 +6947,12 @@ }, { "argumentTypes": null, - "id": 214, + "id": 238, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 196, - "src": "4448:4:2", + "referencedDeclaration": 220, + "src": "4463:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -7048,14 +6960,14 @@ }, { "argumentTypes": null, - "id": 215, + "id": 239, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 198, - "src": "4454:9:2", + "referencedDeclaration": 222, + "src": "4469:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -7064,18 +6976,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 216, + "id": 240, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "4465:7:2", + "referencedDeclaration": 2652, + "src": "4480:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 217, + "id": 241, "isConstant": false, "isLValue": false, "isPure": false, @@ -7083,7 +6995,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4465:9:2", + "src": "4480:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7105,7 +7017,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -7113,18 +7025,18 @@ "typeString": "uint256" } ], - "id": 211, + "id": 235, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "4429:7:2", + "referencedDeclaration": 992, + "src": "4444: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": 218, + "id": 242, "isConstant": false, "isLValue": false, "isPure": false, @@ -7132,7 +7044,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4429:46:2", + "src": "4444:46:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7146,21 +7058,21 @@ "typeString": "bool" } ], - "id": 210, + "id": 234, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1776, - "src": "4421:7:2", + "referencedDeclaration": 2662, + "src": "4436:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 219, + "id": 243, "isConstant": false, "isLValue": false, "isPure": false, @@ -7168,28 +7080,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4421:55:2", + "src": "4436:55:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 220, + "id": 244, "nodeType": "ExpressionStatement", - "src": "4421:55:2" + "src": "4436:55:3" }, { "assignments": [ - 222 + 246 ], "declarations": [ { "constant": false, - "id": 222, + "id": 246, "name": "requiredGas", "nodeType": "VariableDeclaration", - "scope": 238, - "src": "4486:19:2", + "scope": 262, + "src": "4501:19:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7197,10 +7109,10 @@ "typeString": "uint256" }, "typeName": { - "id": 221, + "id": 245, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4486:7:2", + "src": "4501:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7210,26 +7122,26 @@ "visibility": "internal" } ], - "id": 227, + "id": 251, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 226, + "id": 250, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 223, + "id": 247, "name": "startGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 206, - "src": "4508:8:2", + "referencedDeclaration": 230, + "src": "4523:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7242,18 +7154,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 224, + "id": 248, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "4519:7:2", + "referencedDeclaration": 2652, + "src": "4534:7:3", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 225, + "id": 249, "isConstant": false, "isLValue": false, "isPure": false, @@ -7261,20 +7173,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4519:9:2", + "src": "4534:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4508:20:2", + "src": "4523:20:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4486:42:2" + "src": "4501:42:3" }, { "expression": { @@ -7288,12 +7200,12 @@ "arguments": [ { "argumentTypes": null, - "id": 232, + "id": 256, "name": "requiredGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 222, - "src": "4636:11:2", + "referencedDeclaration": 246, + "src": "4651:11:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7309,18 +7221,18 @@ ], "expression": { "argumentTypes": null, - "id": 230, + "id": 254, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1760, - "src": "4619:3:2", + "referencedDeclaration": 2646, + "src": "4634:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 231, + "id": 255, "isConstant": false, "isLValue": false, "isPure": true, @@ -7328,13 +7240,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4619:16:2", + "src": "4634:16:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 233, + "id": 257, "isConstant": false, "isLValue": false, "isPure": false, @@ -7342,7 +7254,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4619:29:2", + "src": "4634:29:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -7356,20 +7268,20 @@ "typeString": "bytes memory" } ], - "id": 229, + "id": 253, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4612:6:2", + "src": "4627:6:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)" }, "typeName": "string" }, - "id": 234, + "id": 258, "isConstant": false, "isLValue": false, "isPure": false, @@ -7377,7 +7289,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4612:37:2", + "src": "4627:37:3", "typeDescriptions": { "typeIdentifier": "t_string_memory", "typeString": "string memory" @@ -7391,21 +7303,21 @@ "typeString": "string memory" } ], - "id": 228, + "id": 252, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ - 1778, - 1779 + 2664, + 2665 ], - "referencedDeclaration": 1779, - "src": "4605:6:2", + "referencedDeclaration": 2665, + "src": "4620:6:3", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 235, + "id": 259, "isConstant": false, "isLValue": false, "isPure": false, @@ -7413,57 +7325,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4605:45:2", + "src": "4620:45:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 236, + "id": 260, "nodeType": "ExpressionStatement", - "src": "4605:45:2" + "src": "4620:45:3" } ] }, "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 `execTransactionAndPaySubmitter`\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": 238, + "id": 262, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 201, + "id": 225, "modifierName": { "argumentTypes": null, - "id": 200, + "id": 224, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "4245:10:2", + "referencedDeclaration": 1687, + "src": "4260:10:3", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4245:10:2" + "src": "4260:10:3" } ], "name": "requiredTxGas", "nodeType": "FunctionDefinition", "parameters": { - "id": 199, + "id": 223, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 192, + "id": 216, "name": "to", "nodeType": "VariableDeclaration", - "scope": 238, - "src": "4157:10:2", + "scope": 262, + "src": "4172:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7471,10 +7383,10 @@ "typeString": "address" }, "typeName": { - "id": 191, + "id": 215, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4157:7:2", + "src": "4172:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7485,11 +7397,11 @@ }, { "constant": false, - "id": 194, + "id": 218, "name": "value", "nodeType": "VariableDeclaration", - "scope": 238, - "src": "4169:13:2", + "scope": 262, + "src": "4184:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7497,10 +7409,10 @@ "typeString": "uint256" }, "typeName": { - "id": 193, + "id": 217, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4169:7:2", + "src": "4184:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7511,11 +7423,11 @@ }, { "constant": false, - "id": 196, + "id": 220, "name": "data", "nodeType": "VariableDeclaration", - "scope": 238, - "src": "4184:10:2", + "scope": 262, + "src": "4199:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7523,10 +7435,10 @@ "typeString": "bytes" }, "typeName": { - "id": 195, + "id": 219, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4184:5:2", + "src": "4199:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7537,26 +7449,26 @@ }, { "constant": false, - "id": 198, + "id": 222, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 238, - "src": "4196:24:2", + "scope": 262, + "src": "4211: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": 197, + "id": 221, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "4196:14:2", + "referencedDeclaration": 29, + "src": "4211:14:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -7564,20 +7476,20 @@ "visibility": "internal" } ], - "src": "4156:65:2" + "src": "4171:65:3" }, "payable": false, "returnParameters": { - "id": 204, + "id": 228, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 203, + "id": 227, "name": "", "nodeType": "VariableDeclaration", - "scope": 238, - "src": "4273:7:2", + "scope": 262, + "src": "4288:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7585,10 +7497,10 @@ "typeString": "uint256" }, "typeName": { - "id": 202, + "id": 226, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4273:7:2", + "src": "4288:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7598,32 +7510,32 @@ "visibility": "internal" } ], - "src": "4272:9:2" + "src": "4287:9:3" }, - "scope": 345, - "src": "4134:523:2", + "scope": 369, + "src": "4149:523:3", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 297, + "id": 321, "nodeType": "Block", - "src": "4750:519:2", + "src": "4765:519:3", "statements": [ { "assignments": [ - 246 + 270 ], "declarations": [ { "constant": false, - "id": 246, + "id": 270, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "4812:17:2", + "scope": 322, + "src": "4827:17:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7631,10 +7543,10 @@ "typeString": "address" }, "typeName": { - "id": 245, + "id": 269, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4812:7:2", + "src": "4827:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7644,21 +7556,21 @@ "visibility": "internal" } ], - "id": 250, + "id": 274, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 248, + "id": 272, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4840:1:2", + "src": "4855:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7674,20 +7586,20 @@ "typeString": "int_const 0" } ], - "id": 247, + "id": 271, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4832:7:2", + "src": "4847:7:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 249, + "id": 273, "isConstant": false, "isLValue": false, "isPure": true, @@ -7695,25 +7607,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4832:10:2", + "src": "4847:10:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4812:30:2" + "src": "4827:30:3" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 252, + "id": 276, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "4852:20:2", + "scope": 322, + "src": "4867:20:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7721,10 +7633,10 @@ "typeString": "address" }, "typeName": { - "id": 251, + "id": 275, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4852:7:2", + "src": "4867:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7734,21 +7646,21 @@ "visibility": "internal" } ], - "id": 253, + "id": 277, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "4852:20:2" + "src": "4867:20:3" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 255, + "id": 279, "name": "i", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "4882:9:2", + "scope": 322, + "src": "4897:9:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7756,10 +7668,10 @@ "typeString": "uint256" }, "typeName": { - "id": 254, + "id": 278, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4882:7:2", + "src": "4897:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7769,33 +7681,33 @@ "visibility": "internal" } ], - "id": 256, + "id": 280, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "4882:9:2" + "src": "4897:9:3" }, { "body": { - "id": 295, + "id": 319, "nodeType": "Block", - "src": "4975:288:2", + "src": "4990:288:3", "statements": [ { "expression": { "argumentTypes": null, - "id": 273, + "id": 297, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 267, + "id": 291, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 252, - "src": "4989:12:2", + "referencedDeclaration": 276, + "src": "5004:12:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7808,12 +7720,12 @@ "arguments": [ { "argumentTypes": null, - "id": 269, + "id": 293, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 240, - "src": "5015:6:2", + "referencedDeclaration": 264, + "src": "5030:6:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7821,12 +7733,12 @@ }, { "argumentTypes": null, - "id": 270, + "id": 294, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 242, - "src": "5023:10:2", + "referencedDeclaration": 266, + "src": "5038:10:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -7834,12 +7746,12 @@ }, { "argumentTypes": null, - "id": 271, + "id": 295, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "5035:1:2", + "referencedDeclaration": 279, + "src": "5050:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7861,18 +7773,18 @@ "typeString": "uint256" } ], - "id": 268, + "id": 292, "name": "recoverKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "5004:10:2", + "referencedDeclaration": 1728, + "src": "5019:10:3", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$", "typeString": "function (bytes32,bytes memory,uint256) pure returns (address)" } }, - "id": 272, + "id": 296, "isConstant": false, "isLValue": false, "isPure": false, @@ -7880,21 +7792,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5004:33:2", + "src": "5019:33:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4989:48:2", + "src": "5004:48:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 274, + "id": 298, "nodeType": "ExpressionStatement", - "src": "4989:48:2" + "src": "5004:48:3" }, { "expression": { @@ -7906,7 +7818,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 280, + "id": 304, "isConstant": false, "isLValue": false, "isPure": false, @@ -7915,26 +7827,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 276, + "id": 300, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "5059:6:2", + "referencedDeclaration": 1117, + "src": "5074:6:3", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 278, + "id": 302, "indexExpression": { "argumentTypes": null, - "id": 277, + "id": 301, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 252, - "src": "5066:12:2", + "referencedDeclaration": 276, + "src": "5081:12:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7945,7 +7857,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5059:20:2", + "src": "5074:20:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7956,14 +7868,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 279, + "id": 303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5083:1:2", + "src": "5098:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7971,7 +7883,7 @@ }, "value": "0" }, - "src": "5059:25:2", + "src": "5074:25:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7980,14 +7892,14 @@ { "argumentTypes": null, "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 281, + "id": 305, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5086:33:2", + "src": "5101:33:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", @@ -8007,21 +7919,21 @@ "typeString": "literal_string \"Signature not provided by owner\"" } ], - "id": 275, + "id": 299, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "5051:7:2", + "referencedDeclaration": 2663, + "src": "5066:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 282, + "id": 306, "isConstant": false, "isLValue": false, "isPure": false, @@ -8029,15 +7941,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5051:69:2", + "src": "5066:69:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 283, + "id": 307, "nodeType": "ExpressionStatement", - "src": "5051:69:2" + "src": "5066:69:3" }, { "expression": { @@ -8049,19 +7961,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 287, + "id": 311, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 285, + "id": 309, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 252, - "src": "5142:12:2", + "referencedDeclaration": 276, + "src": "5157:12:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8071,18 +7983,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 286, + "id": 310, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 246, - "src": "5157:9:2", + "referencedDeclaration": 270, + "src": "5172:9:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5142:24:2", + "src": "5157:24:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8091,14 +8003,14 @@ { "argumentTypes": null, "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 288, + "id": 312, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5168:45:2", + "src": "5183:45:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", @@ -8118,21 +8030,21 @@ "typeString": "literal_string \"Signatures are not ordered by owner address\"" } ], - "id": 284, + "id": 308, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "5134:7:2", + "referencedDeclaration": 2663, + "src": "5149:7:3", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 289, + "id": 313, "isConstant": false, "isLValue": false, "isPure": false, @@ -8140,32 +8052,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5134:80:2", + "src": "5149:80:3", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 290, + "id": 314, "nodeType": "ExpressionStatement", - "src": "5134:80:2" + "src": "5149:80:3" }, { "expression": { "argumentTypes": null, - "id": 293, + "id": 317, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 291, + "id": 315, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 246, - "src": "5228:9:2", + "referencedDeclaration": 270, + "src": "5243:9:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8175,26 +8087,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 292, + "id": 316, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 252, - "src": "5240:12:2", + "referencedDeclaration": 276, + "src": "5255:12:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5228:24:2", + "src": "5243:24:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 294, + "id": 318, "nodeType": "ExpressionStatement", - "src": "5228:24:2" + "src": "5243:24:3" } ] }, @@ -8204,19 +8116,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 263, + "id": 287, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 261, + "id": 285, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "4955:1:2", + "referencedDeclaration": 279, + "src": "4970:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8226,40 +8138,40 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 262, + "id": 286, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "4959:9:2", + "referencedDeclaration": 1121, + "src": "4974:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4955:13:2", + "src": "4970:13:3", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 296, + "id": 320, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 259, + "id": 283, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 257, + "id": 281, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "4948:1:2", + "referencedDeclaration": 279, + "src": "4963:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8270,14 +8182,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 258, + "id": 282, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4952:1:2", + "src": "4967:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8285,20 +8197,20 @@ }, "value": "0" }, - "src": "4948:5:2", + "src": "4963:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 260, + "id": 284, "nodeType": "ExpressionStatement", - "src": "4948:5:2" + "src": "4963:5:3" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 265, + "id": 289, "isConstant": false, "isLValue": false, "isPure": false, @@ -8306,15 +8218,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4970:3:2", + "src": "4985:3:3", "subExpression": { "argumentTypes": null, - "id": 264, + "id": 288, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 255, - "src": "4970:1:2", + "referencedDeclaration": 279, + "src": "4985:1:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8325,17 +8237,17 @@ "typeString": "uint256" } }, - "id": 266, + "id": 290, "nodeType": "ExpressionStatement", - "src": "4970:3:2" + "src": "4985:3:3" }, "nodeType": "ForStatement", - "src": "4943:320:2" + "src": "4958:320:3" } ] }, "documentation": null, - "id": 298, + "id": 322, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8343,16 +8255,16 @@ "name": "checkHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 243, + "id": 267, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 240, + "id": 264, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "4682:14:2", + "scope": 322, + "src": "4697:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8360,10 +8272,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 239, + "id": 263, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4682:7:2", + "src": "4697:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -8374,11 +8286,11 @@ }, { "constant": false, - "id": 242, + "id": 266, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "4698:16:2", + "scope": 322, + "src": "4713:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8386,10 +8298,10 @@ "typeString": "bytes" }, "typeName": { - "id": 241, + "id": 265, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4698:5:2", + "src": "4713:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8399,26 +8311,26 @@ "visibility": "internal" } ], - "src": "4681:34:2" + "src": "4696:34:3" }, "payable": false, "returnParameters": { - "id": 244, + "id": 268, "nodeType": "ParameterList", "parameters": [], - "src": "4750:0:2" + "src": "4765:0:3" }, - "scope": 345, - "src": "4663:606:2", + "scope": 369, + "src": "4678:606:3", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 343, + "id": 367, "nodeType": "Block", - "src": "6193:176:2", + "src": "6208:176:3", "statements": [ { "expression": { @@ -8433,14 +8345,14 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 325, + "id": 349, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6255:4:2", + "src": "6270:4:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", @@ -8456,20 +8368,20 @@ "typeString": "int_const 25" } ], - "id": 324, + "id": 348, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6250:4:2", + "src": "6265:4:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 326, + "id": 350, "isConstant": false, "isLValue": false, "isPure": true, @@ -8477,7 +8389,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6250:10:2", + "src": "6265:10:3", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -8489,14 +8401,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 328, + "id": 352, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6267:1:2", + "src": "6282:1:3", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8512,20 +8424,20 @@ "typeString": "int_const 0" } ], - "id": 327, + "id": 351, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6262:4:2", + "src": "6277:4:3", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 329, + "id": 353, "isConstant": false, "isLValue": false, "isPure": true, @@ -8533,7 +8445,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6262:7:2", + "src": "6277:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -8541,25 +8453,25 @@ }, { "argumentTypes": null, - "id": 330, + "id": 354, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1804, - "src": "6271:4:2", + "referencedDeclaration": 2694, + "src": "6286:4:3", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$345", + "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$369", "typeString": "contract GnosisSafePersonalEdition" } }, { "argumentTypes": null, - "id": 331, + "id": 355, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 300, - "src": "6277:2:2", + "referencedDeclaration": 324, + "src": "6292:2:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8567,12 +8479,12 @@ }, { "argumentTypes": null, - "id": 332, + "id": 356, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 302, - "src": "6281:5:2", + "referencedDeclaration": 326, + "src": "6296:5:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8580,12 +8492,12 @@ }, { "argumentTypes": null, - "id": 333, + "id": 357, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 304, - "src": "6288:4:2", + "referencedDeclaration": 328, + "src": "6303:4:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -8593,25 +8505,25 @@ }, { "argumentTypes": null, - "id": 334, + "id": 358, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 306, - "src": "6294:9:2", + "referencedDeclaration": 330, + "src": "6309:9:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 335, + "id": 359, "name": "safeTxGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 308, - "src": "6305:9:2", + "referencedDeclaration": 332, + "src": "6320:9:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8619,12 +8531,12 @@ }, { "argumentTypes": null, - "id": 336, + "id": 360, "name": "dataGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 310, - "src": "6316:7:2", + "referencedDeclaration": 334, + "src": "6331:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8632,12 +8544,12 @@ }, { "argumentTypes": null, - "id": 337, + "id": 361, "name": "gasPrice", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 312, - "src": "6325:8:2", + "referencedDeclaration": 336, + "src": "6340:8:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8645,12 +8557,12 @@ }, { "argumentTypes": null, - "id": 338, + "id": 362, "name": "gasToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 314, - "src": "6335:8:2", + "referencedDeclaration": 338, + "src": "6350:8:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8658,12 +8570,12 @@ }, { "argumentTypes": null, - "id": 339, + "id": 363, "name": "_nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 316, - "src": "6345:6:2", + "referencedDeclaration": 340, + "src": "6360:6:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8681,7 +8593,7 @@ "typeString": "bytes1" }, { - "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$345", + "typeIdentifier": "t_contract$_GnosisSafePersonalEdition_$369", "typeString": "contract GnosisSafePersonalEdition" }, { @@ -8697,7 +8609,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -8723,18 +8635,18 @@ ], "expression": { "argumentTypes": null, - "id": 322, + "id": 346, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1760, - "src": "6233:3:2", + "referencedDeclaration": 2646, + "src": "6248:3:3", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 323, + "id": 347, "isConstant": false, "isLValue": false, "isPure": true, @@ -8742,13 +8654,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "6233:16:2", + "src": "6248:16:3", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 340, + "id": 364, "isConstant": false, "isLValue": false, "isPure": false, @@ -8756,7 +8668,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6233:119:2", + "src": "6248:119:3", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -8770,18 +8682,18 @@ "typeString": "bytes memory" } ], - "id": 321, + "id": 345, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "6210:9:2", + "referencedDeclaration": 2653, + "src": "6225:9:3", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 341, + "id": 365, "isConstant": false, "isLValue": false, "isPure": false, @@ -8789,21 +8701,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6210:152:2", + "src": "6225:152:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 320, - "id": 342, + "functionReturnParameters": 344, + "id": 366, "nodeType": "Return", - "src": "6203:159:2" + "src": "6218: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 gasToken Token address (or 0 if ETH) that is used for the payment.\n @param _nonce Transaction nonce.\n @return Transaction hash.", - "id": 344, + "id": 368, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -8811,16 +8723,16 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 317, + "id": 341, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 300, + "id": 324, "name": "to", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "5906:10:2", + "scope": 368, + "src": "5921:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8828,10 +8740,10 @@ "typeString": "address" }, "typeName": { - "id": 299, + "id": 323, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5906:7:2", + "src": "5921:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8842,11 +8754,11 @@ }, { "constant": false, - "id": 302, + "id": 326, "name": "value", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "5927:13:2", + "scope": 368, + "src": "5942:13:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8854,10 +8766,10 @@ "typeString": "uint256" }, "typeName": { - "id": 301, + "id": 325, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5927:7:2", + "src": "5942:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8868,11 +8780,11 @@ }, { "constant": false, - "id": 304, + "id": 328, "name": "data", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "5951:10:2", + "scope": 368, + "src": "5966:10:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8880,10 +8792,10 @@ "typeString": "bytes" }, "typeName": { - "id": 303, + "id": 327, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5951:5:2", + "src": "5966:5:3", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8894,26 +8806,26 @@ }, { "constant": false, - "id": 306, + "id": 330, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "5972:24:2", + "scope": 368, + "src": "5987: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": 305, + "id": 329, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "5972:14:2", + "referencedDeclaration": 29, + "src": "5987:14:3", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -8922,11 +8834,11 @@ }, { "constant": false, - "id": 308, + "id": 332, "name": "safeTxGas", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "6007:17:2", + "scope": 368, + "src": "6022:17:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8934,10 +8846,10 @@ "typeString": "uint256" }, "typeName": { - "id": 307, + "id": 331, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6007:7:2", + "src": "6022:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8948,11 +8860,11 @@ }, { "constant": false, - "id": 310, + "id": 334, "name": "dataGas", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "6035:15:2", + "scope": 368, + "src": "6050:15:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8960,10 +8872,10 @@ "typeString": "uint256" }, "typeName": { - "id": 309, + "id": 333, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6035:7:2", + "src": "6050:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8974,11 +8886,11 @@ }, { "constant": false, - "id": 312, + "id": 336, "name": "gasPrice", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "6061:16:2", + "scope": 368, + "src": "6076:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8986,10 +8898,10 @@ "typeString": "uint256" }, "typeName": { - "id": 311, + "id": 335, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6061:7:2", + "src": "6076:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9000,11 +8912,11 @@ }, { "constant": false, - "id": 314, + "id": 338, "name": "gasToken", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "6088:16:2", + "scope": 368, + "src": "6103:16:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9012,10 +8924,10 @@ "typeString": "address" }, "typeName": { - "id": 313, + "id": 337, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6088:7:2", + "src": "6103:7:3", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9026,11 +8938,11 @@ }, { "constant": false, - "id": 316, + "id": 340, "name": "_nonce", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "6114:14:2", + "scope": 368, + "src": "6129:14:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9038,10 +8950,10 @@ "typeString": "uint256" }, "typeName": { - "id": 315, + "id": 339, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6114:7:2", + "src": "6129:7:3", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9051,20 +8963,20 @@ "visibility": "internal" } ], - "src": "5896:238:2" + "src": "5911:238:3" }, "payable": false, "returnParameters": { - "id": 320, + "id": 344, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 319, + "id": 343, "name": "", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "6180:7:2", + "scope": 368, + "src": "6195:7:3", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9072,10 +8984,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 318, + "id": 342, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6180:7:2", + "src": "6195:7:3", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -9085,105 +8997,33 @@ "visibility": "internal" } ], - "src": "6179:9:2" + "src": "6194:9:3" }, - "scope": 345, - "src": "5869:500:2", + "scope": 369, + "src": "5884:500:3", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 346, - "src": "484:5887:2" + "scope": 370, + "src": "483:5903:3" } ], - "src": "0:6372:2" + "src": "0:6387:3" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { - "4": { + "1530197641790": { "events": {}, "links": {}, - "address": "0x439f1a7ec29875e3e5a3507f6f4161c3d95496d8", - "transactionHash": "0x19675960d903e9841fd5ec8e97a3ea604087f66075c3effedf1804397a5debec" - }, - "1529327661534": { - "events": {}, - "links": {}, - "address": "0x826efa98ea5511449f53505a69e4df3dbf5577ff", - "transactionHash": "0xed1ba6cba79ce65001ce0fab4e609423c8ec3128bce002f2641307815dcae1a5" - }, - "1529333415702": { - "events": {}, - "links": {}, - "address": "0x0c6b67148fe8939c20040e409fc2e5bc349cf1fd", - "transactionHash": "0xa3d4ad952d11ed76260a43d543cd9e20075a9fd4e69a1001c5ca76dfc73b8ca0" - }, - "1529652204341": { - "events": {}, - "links": {}, - "address": "0x3a153e91544b2639d1bff08ddf29cfe0b90d54c2", - "transactionHash": "0x3324c7ff6568820ed79ff9613ae1d851689b2d93a8eafa70c1a40e833f7cfe7b" - }, - "1529931780812": { - "events": {}, - "links": {}, - "address": "0xf88085be8478edfb5b42d97574d345e34922b48f", - "transactionHash": "0x3324c7ff6568820ed79ff9613ae1d851689b2d93a8eafa70c1a40e833f7cfe7b" - }, - "1529933005377": { - "events": {}, - "links": {}, - "address": "0x31130fa845844c8fb93b61f6ed57d4c271e5cb21", - "transactionHash": "0x3324c7ff6568820ed79ff9613ae1d851689b2d93a8eafa70c1a40e833f7cfe7b" - }, - "1529934931891": { - "events": {}, - "links": {}, - "address": "0xf51a6cb784b10f11897def6e217dc4fa9704d40e", - "transactionHash": "0x3324c7ff6568820ed79ff9613ae1d851689b2d93a8eafa70c1a40e833f7cfe7b" - }, - "1529935355957": { - "events": {}, - "links": {}, - "address": "0x9803da100da0996e6b2c9c6830eabad6d5fda8d9", - "transactionHash": "0x3324c7ff6568820ed79ff9613ae1d851689b2d93a8eafa70c1a40e833f7cfe7b" - }, - "1529936204222": { - "events": {}, - "links": {}, - "address": "0xb368c31a48443b8d9453afdab6fe1796cccc327b", - "transactionHash": "0x3324c7ff6568820ed79ff9613ae1d851689b2d93a8eafa70c1a40e833f7cfe7b" - }, - "1529937280871": { - "events": {}, - "links": {}, - "address": "0x1e278d7902711c84127ae63974a38351d8e1ff61", - "transactionHash": "0x3324c7ff6568820ed79ff9613ae1d851689b2d93a8eafa70c1a40e833f7cfe7b" - }, - "1529937637076": { - "events": {}, - "links": {}, - "address": "0x293c54210c592003fceb42ffa0a37ee8d376b9df", - "transactionHash": "0x3324c7ff6568820ed79ff9613ae1d851689b2d93a8eafa70c1a40e833f7cfe7b" - }, - "1529937890676": { - "events": {}, - "links": {}, - "address": "0xfae3027aec50dd246d3f9b956ddaa3dbf010fe58", - "transactionHash": "0x3324c7ff6568820ed79ff9613ae1d851689b2d93a8eafa70c1a40e833f7cfe7b" - }, - "1530013596495": { - "events": {}, - "links": {}, - "address": "0xf172cbf6e7dd30b004bbba894634ccf7e5dc8938", - "transactionHash": "0x3324c7ff6568820ed79ff9613ae1d851689b2d93a8eafa70c1a40e833f7cfe7b" + "address": "0x046a01d2d5dc286b82fbeb6439114b9a36fc74ee", + "transactionHash": "0xad46e78ac2cdd68ac87e60de6438f8d3bea4e95016550638db9573eb33e1dd97" } }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-26T11:47:04.127Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:58.276Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/GnosisSafeTeamEdition.json b/safe-contracts/build/contracts/GnosisSafeTeamEdition.json index c081f394..5a1ec62a 100644 --- a/safe-contracts/build/contracts/GnosisSafeTeamEdition.json +++ b/safe-contracts/build/contracts/GnosisSafeTeamEdition.json @@ -1,6 +1,50 @@ { "contractName": "GnosisSafeTeamEdition", "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "_threshold", + "type": "uint256" + } + ], + "name": "addOwnerWithThreshold", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_owners", + "type": "address[]" + }, + { + "name": "_threshold", + "type": "uint256" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "data", + "type": "bytes" + } + ], + "name": "setup", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [ @@ -65,6 +109,20 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "_threshold", + "type": "uint256" + } + ], + "name": "changeThreshold", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": false, "inputs": [ @@ -93,28 +151,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "prevOwner", - "type": "address" - }, - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint8" - } - ], - "name": "removeOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": true, "inputs": [], @@ -129,32 +165,6 @@ "stateMutability": "view", "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": [ @@ -220,38 +230,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": false, - "inputs": [ - { - "name": "_threshold", - "type": "uint8" - } - ], - "name": "changeThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "_threshold", - "type": "uint8" - } - ], - "name": "addOwnerWithThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, { "constant": false, "inputs": [ @@ -318,13 +296,35 @@ "outputs": [ { "name": "", - "type": "uint8" + "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, + { + "constant": false, + "inputs": [ + { + "name": "prevOwner", + "type": "address" + }, + { + "name": "owner", + "type": "address" + }, + { + "name": "_threshold", + "type": "uint256" + } + ], + "name": "removeOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, { "constant": true, "inputs": [], @@ -452,51 +452,51 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50613e1f806100206000396000f300608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063153414fa1461012a57806324cd131f146101d45780632b5000411461027e5780632f54bf6e14610344578063468721a71461039f578063610b5925146104575780637de7edef1461049a57806385e332cd146104dd57806386040aa9146105345780638cff6355146105a4578063a04222e1146105fb578063a09e89f5146106d4578063a0e67e2b14610739578063a3f4df7e146107a5578063b2494df314610835578063b7f3358d146108a1578063b91a667f146108d1578063e009cfde14610921578063e318b52b14610984578063e52cb36a14610a07578063e75235b814610a4c578063ffa1ad7414610a7d575b005b34801561013657600080fd5b506101d2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610b0d565b005b3480156101e057600080fd5b5061027c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610d2a565b005b34801561028a57600080fd5b50610326600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610ecd565b60405180826000191660001916815260200191505060405180910390f35b34801561035057600080fd5b50610385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611155565b604051808215151515815260200191505060405180910390f35b3480156103ab57600080fd5b5061043d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506111d7565b604051808215151515815260200191505060405180910390f35b34801561046357600080fd5b50610498600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611303565b005b3480156104a657600080fd5b506104db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116e1565b005b3480156104e957600080fd5b506104f26118a2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561054057600080fd5b506105a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506118a7565b005b3480156105b057600080fd5b506105b9611d92565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561060757600080fd5b506106d260048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611d97565b005b3480156106e057600080fd5b506107236004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611db1565b6040518082815260200191505060405180910390f35b34801561074557600080fd5b5061074e611dd6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610791578082015181840152602081019050610776565b505050509050019250505060405180910390f35b3480156107b157600080fd5b506107ba611f71565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107fa5780820151818401526020810190506107df565b50505050905090810190601f1680156108275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084157600080fd5b5061084a611faa565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561088d578082015181840152602081019050610872565b505050509050019250505060405180910390f35b3480156108ad57600080fd5b506108cf600480360381019080803560ff169060200190929190505050612251565b005b3480156108dd57600080fd5b5061091f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff16906020019092919050505061246c565b005b34801561092d57600080fd5b50610982600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612875565b005b34801561099057600080fd5b50610a05600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c8e565b005b348015610a1357600080fd5b50610a3660048036038101908080356000191690602001909291905050506132db565b6040518082815260200191505060405180910390f35b348015610a5857600080fd5b50610a616132f3565b604051808260ff1660ff16815260200191505060405180910390f35b348015610a8957600080fd5b50610a926132fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ad2578082015181840152602081019050610ab7565b50505050905090810190601f168015610aff5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610bfc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206973206e6f7420616e206f776e65720000000000000000000081525060200191505060405180910390fd5b610c098686868686610ecd565b9050600060056000836000191660001916815260200190815260200160002054141515610cc4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b6000610d398686868686610ecd565b9050600060056000836000191660001916815260200190815260200160002054141515610df4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610dfd81613336565b600160056000836000191660001916815260200190815260200160002081905550610e2b868686865a6135b4565b1515610ec5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f7420657865637574652073616665207472616e736163746981526020017f6f6e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b505050505050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b602083101515611071578051825260208201915060208101905060208303925061104c565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561109f57fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561111d57805182526020820191506020810190506020830392506110f8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b6112f9858585855a6135b4565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156114205750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561185f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611970576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ff1660016003540310151515611a16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611a6a5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611ade576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611c06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060ff16600454141515611d8d57611d8c81612251565b5b505050565b600181565b611da184846136b1565b611dab8282613b7a565b50505050565b6006602052816000526040600020602052806000526040600020600091509150505481565b606080600080600354604051908082528060200260200182016040528015611e0d5781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611f6857808383815181101515611ebd57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611e78565b82935050505090565b6040805190810160405280601881526020017f476e6f7369732053616665205465616d2045646974696f6e000000000000000081525081565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156120be57600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612019565b826040519080825280602002602001820160405280156120ed5781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156122485781818481518110151561219d57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612158565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561231a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548160ff16111515156123bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018160ff161015151561245f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ff1660048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156125895750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156125fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156126ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060ff166004541415156128715761287081612251565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561293e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156129925750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612a06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612b2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015612dab5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612e1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612f605750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612fd4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156130fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60056020528060005260406000206000915090505481565b6000600454905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b60008060008060066000866000191660001916815260200190815260200160002093506000925060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156135335760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141590503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806134735750805b156134cc5780156134c35760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82806001019350505b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506133c1565b60045483101515156135ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f7420656e6f75676820636f6e6669726d6174696f6e73000000000000000081525060200191505060405180910390fd5b5050505050565b600080600060028111156135c457fe5b8460028111156135d057fe5b14156135e9576135e287878786613db1565b91506136a7565b600160028111156135f657fe5b84600281111561360257fe5b141561361a57613613878685613dca565b91506136a6565b61362385613de1565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008060045414151561372f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518460ff16111515156137d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018460ff1610151515613873576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015613ae257848281518110151561389357fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141580156138f35750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515613967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613a54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550809250818060010192505061387c565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084516003819055508360ff166004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613c8e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515613dad57613d3882825a613dca565b1515613dac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a7230582020adf9ea3172b21d0f9165de77fa73a512a48e6bd7825525f659041da99713c00029", - "deployedBytecode": "0x608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063153414fa1461012a57806324cd131f146101d45780632b5000411461027e5780632f54bf6e14610344578063468721a71461039f578063610b5925146104575780637de7edef1461049a57806385e332cd146104dd57806386040aa9146105345780638cff6355146105a4578063a04222e1146105fb578063a09e89f5146106d4578063a0e67e2b14610739578063a3f4df7e146107a5578063b2494df314610835578063b7f3358d146108a1578063b91a667f146108d1578063e009cfde14610921578063e318b52b14610984578063e52cb36a14610a07578063e75235b814610a4c578063ffa1ad7414610a7d575b005b34801561013657600080fd5b506101d2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610b0d565b005b3480156101e057600080fd5b5061027c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610d2a565b005b34801561028a57600080fd5b50610326600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610ecd565b60405180826000191660001916815260200191505060405180910390f35b34801561035057600080fd5b50610385600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611155565b604051808215151515815260200191505060405180910390f35b3480156103ab57600080fd5b5061043d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506111d7565b604051808215151515815260200191505060405180910390f35b34801561046357600080fd5b50610498600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611303565b005b3480156104a657600080fd5b506104db600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116e1565b005b3480156104e957600080fd5b506104f26118a2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561054057600080fd5b506105a2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506118a7565b005b3480156105b057600080fd5b506105b9611d92565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561060757600080fd5b506106d260048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611d97565b005b3480156106e057600080fd5b506107236004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611db1565b6040518082815260200191505060405180910390f35b34801561074557600080fd5b5061074e611dd6565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610791578082015181840152602081019050610776565b505050509050019250505060405180910390f35b3480156107b157600080fd5b506107ba611f71565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107fa5780820151818401526020810190506107df565b50505050905090810190601f1680156108275780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084157600080fd5b5061084a611faa565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561088d578082015181840152602081019050610872565b505050509050019250505060405180910390f35b3480156108ad57600080fd5b506108cf600480360381019080803560ff169060200190929190505050612251565b005b3480156108dd57600080fd5b5061091f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff16906020019092919050505061246c565b005b34801561092d57600080fd5b50610982600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612875565b005b34801561099057600080fd5b50610a05600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c8e565b005b348015610a1357600080fd5b50610a3660048036038101908080356000191690602001909291905050506132db565b6040518082815260200191505060405180910390f35b348015610a5857600080fd5b50610a616132f3565b604051808260ff1660ff16815260200191505060405180910390f35b348015610a8957600080fd5b50610a926132fd565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ad2578082015181840152602081019050610ab7565b50505050905090810190601f168015610aff5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151515610bfc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206973206e6f7420616e206f776e65720000000000000000000081525060200191505060405180910390fd5b610c098686868686610ecd565b9050600060056000836000191660001916815260200190815260200160002054141515610cc4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b6000610d398686868686610ecd565b9050600060056000836000191660001916815260200190815260200160002054141515610df4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b610dfd81613336565b600160056000836000191660001916815260200190815260200160002081905550610e2b868686865a6135b4565b1515610ec5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f7420657865637574652073616665207472616e736163746981526020017f6f6e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b505050505050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b602083101515611071578051825260208201915060208101905060208303925061104c565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561109f57fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561111d57805182526020820191506020810190506020830392506110f8565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156112ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b6112f9858585855a6135b4565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113cc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156114205750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515611494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611581576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415151561185f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611970576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ff1660016003540310151515611a16576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015611a6a5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515611ade576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611c06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360008154809291906001900391905055508060ff16600454141515611d8d57611d8c81612251565b5b505050565b600181565b611da184846136b1565b611dab8282613b7a565b50505050565b6006602052816000526040600020602052806000526040600020600091509150505481565b606080600080600354604051908082528060200260200182016040528015611e0d5781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515611f6857808383815181101515611ebd57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611e78565b82935050505090565b6040805190810160405280601881526020017f476e6f7369732053616665205465616d2045646974696f6e000000000000000081525081565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156120be57600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612019565b826040519080825280602002602001820160405280156120ed5781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156122485781818481518110151561219d57fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612158565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561231a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548160ff16111515156123bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018160ff161015151561245f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ff1660048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612535576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156125895750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156125fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156126ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600081548092919060010191905055508060ff166004541415156128715761287081612251565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561293e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156129925750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612a06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612b2e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612d57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015612dab5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612e1f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612f0c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612f605750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612fd4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156130fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60056020528060005260406000206000915090505481565b6000600454905090565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b60008060008060066000866000191660001916815260200190815260200160002093506000925060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156135335760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141590503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614806134735750805b156134cc5780156134c35760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82806001019350505b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691506133c1565b60045483101515156135ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f7420656e6f75676820636f6e6669726d6174696f6e73000000000000000081525060200191505060405180910390fd5b5050505050565b600080600060028111156135c457fe5b8460028111156135d057fe5b14156135e9576135e287878786613db1565b91506136a7565b600160028111156135f657fe5b84600281111561360257fe5b141561361a57613613878685613dca565b91506136a6565b61362385613de1565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008060045414151561372f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b84518460ff16111515156137d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018460ff1610151515613873576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b8451821015613ae257848281518110151561389357fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff16141580156138f35750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515613967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613a54576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550809250818060010192505061387c565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084516003819055508360ff166004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613c8e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515613dad57613d3882825a613dca565b1515613dac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a7230582020adf9ea3172b21d0f9165de77fa73a512a48e6bd7825525f659041da99713c00029", - "sourceMap": "272:4068:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;272:4068:3;;;;;;;", - "deployedSourceMap": "272:4068:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1266:638;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1266:638:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2346:618;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2346:618:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4009:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4009:329:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5610:129:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5610:129:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2841:429:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2841:429:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:459:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:55:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:55:6;;;;;;;;;;;;;;;;;;;;;;;;;;;3026:781:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3026:781: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;770:66:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;770:66:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5821:458:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5821: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;5821: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4794:738:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4794: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;4794:738:6;;;;;;;;;;;;;;;;;5081:397:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5081:397:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;2091:593;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2091:593:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2031:474:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2031:474:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4141:751:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4141:751:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;536:46:3;;8:9:-1;5:2;;;30:1;27;20:12;5:2;536:46:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5484:120:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5484:120: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1266:638;1605:23;1567:1;1545:6;:18;1552:10;1545:18;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;1537:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:53;1650:2;1654:5;1661:4;1667:9;1678:5;1631:18;:53::i;:::-;1605:79;;1805:1;1774:10;:27;1785:15;1774:27;;;;;;;;;;;;;;;;;;:32;1766:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1896:1;1854:10;:27;1865:15;1854:27;;;;;;;;;;;;;;;;;:39;1882:10;1854:39;;;;;;;;;;;;;;;:43;;;;1266:638;;;;;;:::o;2346:618::-;2540:23;2566:53;2585:2;2589:5;2596:4;2602:9;2613:5;2566:18;:53::i;:::-;2540:79;;2668:1;2637:10;:27;2648:15;2637:27;;;;;;;;;;;;;;;;;;:32;2629:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2717:43;2744:15;2717:26;:43::i;:::-;2853:1;2823:10;:27;2834:15;2823:27;;;;;;;;;;;;;;;;;:31;;;;2872:46;2880:2;2884:5;2891:4;2897:9;2908;2872:7;:46::i;:::-;2864:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2346:618;;;;;;:::o;4009:329::-;4212:7;4274:4;4269:10;;4286:1;4281:7;;4290:4;4296:2;4300:5;4307:4;4313:9;4324:5;4252: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;;;4252:78:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4252:78:3;;;4242: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;;;4242:89:3;;;;;;;;;;;;;;;;4235:96;;4009:329;;;;;;;:::o;5610:129:7:-;5687:4;5731:1;5714:6;:13;5721:5;5714:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5707:25;;5610:129;;;:::o;2841:429:6:-;2973:12;3081:1;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;3050:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3217:46;3225:2;3229:5;3236:4;3242:9;3253;3217:7;:46::i;:::-;3207:56;;2841:429;;;;;;:::o;1311:459::-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1477:1:6;1466:6;1458:20;;;;:59;;;;;550:3;1482:35;;1490:6;1482:35;;;;1458:59;1450:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:1;1612:7;:15;1620:6;1612:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1604:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:7;:25;550:3;1694:25;;;;;;;;;;;;;;;;;;;;;;;;;1676:7;:15;1684:6;1676:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1757:6;1729:7;:25;550:3;1729:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1311:459;:::o;626:248:4:-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:4;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;499:55:6:-;550:3;499:55;:::o;3026:781:7:-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3250:10:7;3232:28;;3245:1;3232:10;;:14;:28;;3224:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3425:1;3416:5;:10;;;;:38;;;;;337:3;3430:24;;:5;:24;;;;3416:38;3408:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3528:5;3507:26;;:6;:17;3514:9;3507:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3499:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3606:6;:13;3613:5;3606:13;;;;;;;;;;;;;;;;;;;;;;;;;3586:6;:17;3593:9;3586:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3645:1;3629:6;:13;3636:5;3629:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3656:10;;:12;;;;;;;;;;;;;;3749:10;3736:23;;:9;;:23;;3732:68;;;3773:27;3789:10;3773:15;:27::i;:::-;3732:68;3026:781;;;:::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;770:66:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5821:458:7:-;5887:9;5912:22;6006:13;6033:20;5951:10;;5937: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;5937:25:7;;;;5912:50;;6022:1;6006:17;;6056:6;:23;337:3;6056:23;;;;;;;;;;;;;;;;;;;;;;;;;6033:46;;6089:162;337:3;6095:31;;:12;:31;;;;6089:162;;;6157:12;6142:5;6148;6142:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6198:6;:20;6205:12;6198:20;;;;;;;;;;;;;;;;;;;;;;;;;6183:35;;6232:8;;;;;;;6089:162;;;6267:5;6260:12;;5821:458;;;;:::o;336:56:3:-;;;;;;;;;;;;;;;;;;;;:::o;4794:738:6:-;4861:9;4920:19;4953:21;5153:22;4942:1;4920:23;;4977:7;:25;550:3;4977:25;;;;;;;;;;;;;;;;;;;;;;;;;4953:49;;5012:132;550:3;5018:33;;:13;:33;;;;5012:132;;;5083:7;:22;5091:13;5083:22;;;;;;;;;;;;;;;;;;;;;;;;;5067:38;;5119:14;;;;;;;5012:132;;;5192:11;5178: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;5178:26:6;;;;5153:51;;5262:1;5248:15;;5289:7;:25;550:3;5289:25;;;;;;;;;;;;;;;;;;;;;;;;;5273:41;;5324:180;550:3;5330:33;;:13;:33;;;;5324:180;;;5400:13;5379:5;5385:11;5379:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5443:7;:22;5451:13;5443:22;;;;;;;;;;;;;;;;;;;;;;;;;5427:38;;5479:14;;;;;;;5324:180;;;5520:5;5513:12;;4794:738;;;;:::o;5081:397:7:-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5263:10:7;;5249;:24;;;;5241:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5397:1;5383:10;:15;;;;5375:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5461:10;5449:22;;:9;:22;;;;5081:397;:::o;2091:593::-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2261:1:7;2252:5;:10;;;;:38;;;;;337:3;2266:24;;:5;:24;;;;2252:38;2244:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2400:1;2383:6;:13;2390:5;2383:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2375:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2459:6;:23;337:3;2459:23;;;;;;;;;;;;;;;;;;;;;;;;;2443:6;:13;2450:5;2443:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2518:5;2492:6;:23;337:3;2492:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2533:10;;:12;;;;;;;;;;;;;2626:10;2613:23;;:9;;:23;;2609:68;;;2650:27;2666:10;2650:15;:27::i;:::-;2609:68;2091:593;;:::o;2031:474:6:-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:1:6;2234:6;2226:20;;;;:59;;;;;550:3;2250:35;;2258:6;2250:35;;;;2226:59;2218:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2370:6;2339:38;;:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2331:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2454:7;:15;2462:6;2454:15;;;;;;;;;;;;;;;;;;;;;;;;;2432:7;:19;2440:10;2432:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2497:1;2479:7;:15;2487:6;2479:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2031:474;;:::o;4141:751:7:-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4324:1:7;4312:8;:13;;;;:44;;;;;337:3;4329:27;;:8;:27;;;;4312:44;4304:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4469:1;4449:6;:16;4456:8;4449:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4441:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4615:1;4603:8;:13;;;;:44;;;;;337:3;4620:27;;:8;:27;;;;4603:44;4595:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4721:8;4700:29;;:6;:17;4707:9;4700:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4692:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4801:6;:16;4808:8;4801:16;;;;;;;;;;;;;;;;;;;;;;;;;4782:6;:16;4789:8;4782:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4847:8;4827:6;:17;4834:9;4827:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4884:1;4865:6;:16;4872:8;4865:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4141:751;;;:::o;536:46:3:-;;;;;;;;;;;;;;;;;:::o;5484:120:7:-;5553:5;5587:9;;5574:23;;5484:120;:::o;398:40:3:-;;;;;;;;;;;;;;;;;;;;:::o;2970:761::-;3062:37;3139:21;3216:20;3326:19;3102:10;:27;3113:15;3102:27;;;;;;;;;;;;;;;;;3062:67;;3163:1;3139:25;;3239:6;:23;337:3:7;3239:23:3;;;;;;;;;;;;;;;;;;;;;;;;;3216:46;;3272:380;337:3:7;3279:31:3;;:12;:31;;;;3272:380;;;3375:1;3348:9;:23;3358:12;3348:23;;;;;;;;;;;;;;;;:28;;3326:50;;3409:10;3393:26;;:12;:26;;;:44;;;;3423:14;3393:44;3390:203;;;3461:14;3457:88;;;3525:1;3499:9;:23;3509:12;3499:23;;;;;;;;;;;;;;;:27;;;;3457:88;3562:16;;;;;;;3390:203;3621:6;:20;3628:12;3621:20;;;;;;;;;;;;;;;;;;;;;;;;;3606:35;;3272:380;;;3686:9;;3669:13;:26;;3661:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970:761;;;;;:::o;3276:548:6:-;3407:12;3678:19;3452;3439:32;;;;;;;;:9;:32;;;;;;;;;3435:383;;;3495:35;3507:2;3511:5;3518:4;3524:5;3495:11;:35::i;:::-;3485:45;;3435:383;;;3562:27;3549:40;;;;;;;;:9;:40;;;;;;;;;3545:273;;;3613:36;3633:2;3637:4;3643:5;3613:19;:36::i;:::-;3603:46;;3545:273;;;3700:19;3714:4;3700:13;:19::i;:::-;3678:41;;3758:1;3743:11;:16;;;;3733:26;;3778:29;3795:11;3778:29;;;;;;;;;;;;;;;;;;;;;;3545:273;3435:383;3276:548;;;;;;;;:::o;643:1208:7:-;1247:20;1300:9;1399:13;877:1;864:9;;:14;856:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1020:7;:14;1006:10;:28;;;;998:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1158:1;1144:10;:15;;;;1136:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:3;1247:38;;1312:1;1300:13;;1295:433;1319:7;:14;1315:1;:18;1295:433;;;1415:7;1423:1;1415:10;;;;;;;;;;;;;;;;;;1399:26;;1456:1;1447:5;:10;;;;:38;;;;;337:3;1461:24;;:5;:24;;;;1447:38;1439:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1603:1;1586:6;:13;1593:5;1586:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1578:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1678:5;1655:6;:20;1662:12;1655:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1712:5;1697:20;;1335:3;;;;;;;1295:433;;;337:3;1737:6;:20;1744:12;1737:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1798:7;:14;1785:10;:27;;;;1834:10;1822:22;;:9;:22;;;;643:1208;;;;;:::o;735:409:6:-;849:1;820:7;:25;550:3;820:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;812:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;550:3;902:7;:25;550:3;902:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;966:1;960:2;:7;;;;956:181;;;1061:40;1081:2;1085:4;1091:9;1061:19;:40::i;:::-;1053:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;956:181;735:409;;:::o;3830:309::-;3939:12;4121:1;4118;4111:4;4105:11;4098:4;4092;4088:15;4081:5;4077:2;4070:5;4065:58;4054:69;;4040:93;;;;;;:::o;4145:303::-;4247:12;4430:1;4427;4420:4;4414:11;4407:4;4401;4397:15;4393:2;4386:5;4373:59;4362:70;;4348:94;;;;;:::o;4454:261::-;4523:19;4693:4;4687:11;4680:4;4674;4670:15;4667:1;4660:39;4645:54;;4631:78;;;:::o", + "bytecode": "0x608060405234801561001057600080fd5b50613df2806100206000396000f300608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f131461012a5780630ec78d9e14610177578063153414fa1461024d57806324cd131f146102f75780632b500041146103a15780632f54bf6e14610467578063468721a7146104c2578063610b59251461057a578063694e80c3146105bd5780637de7edef146105ea57806385e332cd1461062d5780638cff635514610684578063a09e89f5146106db578063a0e67e2b14610740578063a3f4df7e146107ac578063b2494df31461083c578063e009cfde146108a8578063e318b52b1461090b578063e52cb36a1461098e578063e75235b8146109d3578063f8dc5dd9146109fe578063ffa1ad7414610a6b575b005b34801561013657600080fd5b50610175600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610afb565b005b34801561018357600080fd5b5061024b6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610f01565b005b34801561025957600080fd5b506102f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610f1b565b005b34801561030357600080fd5b5061039f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050611138565b005b3480156103ad57600080fd5b50610449600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291905050506112db565b60405180826000191660001916815260200191505060405180910390f35b34801561047357600080fd5b506104a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611563565b604051808215151515815260200191505060405180910390f35b3480156104ce57600080fd5b50610560600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506115e5565b604051808215151515815260200191505060405180910390f35b34801561058657600080fd5b506105bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611711565b005b3480156105c957600080fd5b506105e860048036038101908080359060200190929190505050611aef565b005b3480156105f657600080fd5b5061062b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d01565b005b34801561063957600080fd5b50610642611ec2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561069057600080fd5b50610699611ec7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106e757600080fd5b5061072a6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ecc565b6040518082815260200191505060405180910390f35b34801561074c57600080fd5b50610755611ef1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561079857808201518184015260208101905061077d565b505050509050019250505060405180910390f35b3480156107b857600080fd5b506107c161208c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108015780820151818401526020810190506107e6565b50505050905090810190601f16801561082e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084857600080fd5b506108516120c5565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610894578082015181840152602081019050610879565b505050509050019250505060405180910390f35b3480156108b457600080fd5b50610909600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061236c565b005b34801561091757600080fd5b5061098c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612785565b005b34801561099a57600080fd5b506109bd6004803603810190808035600019169060200190929190505050612dd2565b6040518082815260200191505060405180910390f35b3480156109df57600080fd5b506109e8612dea565b6040518082815260200191505060405180910390f35b348015610a0a57600080fd5b50610a69600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612df4565b005b348015610a7757600080fd5b50610a806132d9565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ac0578082015181840152602081019050610aa5565b50505050905090810190601f168015610aed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610c185750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610c8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060036000815480929190600101919050555080600454141515610efd57610efc81611aef565b5b5050565b610f0b8484613312565b610f1582826137d2565b50505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561100a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206973206e6f7420616e206f776e65720000000000000000000081525060200191505060405180910390fd5b61101786868686866112db565b90506000600560008360001916600019168152602001908152602001600020541415156110d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b600061114786868686866112db565b9050600060056000836000191660001916815260200190815260200160002054141515611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61120b81613a09565b600160056000836000191660001916815260200190815260200160002081905550611239868686865a613c87565b15156112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f7420657865637574652073616665207472616e736163746981526020017f6f6e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b505050505050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561147f578051825260208201915060208101905060208303925061145a565b6001836020036101000a0380198251168184511680821785525050505050509050018360028111156114ad57fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561152b5780518252602082019150602081019050602083039250611506565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611707858585855a613c87565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561182e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156118a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561198f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515611c58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611cf7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611e7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b600181565b6006602052816000526040600020602052806000526040600020600091509150505481565b606080600080600354604051908082528060200260200182016040528015611f285781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561208357808383815181101515611fd857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611f93565b82935050505090565b6040805190810160405280601881526020017f476e6f7369732053616665205465616d2045646974696f6e000000000000000081525081565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156121d957600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612134565b826040519080825280602002602001820160405280156122085781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515612363578181848151811015156122b857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612273565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156124895750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156124fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612625576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561284e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156128a25750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612a03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612a575750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612acb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bf3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60056020528060005260406000206000915090505481565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ebd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016003540310151515612f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612fb45750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515613028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613150576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060036000815480929190600190039190505550806004541415156132d4576132d381611aef565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b600080600080600454141515613390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b8451841115151561342f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600184101515156134ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b845182101561373d5784828151811015156134ee57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415801561354e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156135c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156136af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080925081806001019250506134d7565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156138e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515613a055761399082825a613d84565b1515613a04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060008060066000866000191660001916815260200190815260200160002093506000925060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515613c065760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141590503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480613b465750805b15613b9f578015613b965760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82806001019350505b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150613a94565b6004548310151515613c80576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f7420656e6f75676820636f6e6669726d6174696f6e73000000000000000081525060200191505060405180910390fd5b5050505050565b60008060006002811115613c9757fe5b846002811115613ca357fe5b1415613cbc57613cb587878786613d9b565b9150613d7a565b60016002811115613cc957fe5b846002811115613cd557fe5b1415613ced57613ce6878685613d84565b9150613d79565b613cf685613db4565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008451602086018786f490509392505050565b6000806000845160208601878987f19050949350505050565b60008151602083016000f090509190505600a165627a7a72305820036a0afc03b39a75ef4535ed6b885910efa5f56561fc0f07e63f7cbe5494b4c60029", + "deployedBytecode": "0x608060405260043610610128576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f131461012a5780630ec78d9e14610177578063153414fa1461024d57806324cd131f146102f75780632b500041146103a15780632f54bf6e14610467578063468721a7146104c2578063610b59251461057a578063694e80c3146105bd5780637de7edef146105ea57806385e332cd1461062d5780638cff635514610684578063a09e89f5146106db578063a0e67e2b14610740578063a3f4df7e146107ac578063b2494df31461083c578063e009cfde146108a8578063e318b52b1461090b578063e52cb36a1461098e578063e75235b8146109d3578063f8dc5dd9146109fe578063ffa1ad7414610a6b575b005b34801561013657600080fd5b50610175600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610afb565b005b34801561018357600080fd5b5061024b6004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610f01565b005b34801561025957600080fd5b506102f5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610f1b565b005b34801561030357600080fd5b5061039f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050611138565b005b3480156103ad57600080fd5b50610449600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291905050506112db565b60405180826000191660001916815260200191505060405180910390f35b34801561047357600080fd5b506104a8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611563565b604051808215151515815260200191505060405180910390f35b3480156104ce57600080fd5b50610560600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506115e5565b604051808215151515815260200191505060405180910390f35b34801561058657600080fd5b506105bb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611711565b005b3480156105c957600080fd5b506105e860048036038101908080359060200190929190505050611aef565b005b3480156105f657600080fd5b5061062b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611d01565b005b34801561063957600080fd5b50610642611ec2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561069057600080fd5b50610699611ec7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106e757600080fd5b5061072a6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ecc565b6040518082815260200191505060405180910390f35b34801561074c57600080fd5b50610755611ef1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561079857808201518184015260208101905061077d565b505050509050019250505060405180910390f35b3480156107b857600080fd5b506107c161208c565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108015780820151818401526020810190506107e6565b50505050905090810190601f16801561082e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561084857600080fd5b506108516120c5565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610894578082015181840152602081019050610879565b505050509050019250505060405180910390f35b3480156108b457600080fd5b50610909600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061236c565b005b34801561091757600080fd5b5061098c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612785565b005b34801561099a57600080fd5b506109bd6004803603810190808035600019169060200190929190505050612dd2565b6040518082815260200191505060405180910390f35b3480156109df57600080fd5b506109e8612dea565b6040518082815260200191505060405180910390f35b348015610a0a57600080fd5b50610a69600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612df4565b005b348015610a7757600080fd5b50610a806132d9565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ac0578082015181840152602081019050610aa5565b50505050905090810190601f168015610aed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bc4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610c185750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610c8c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d79576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060036000815480929190600101919050555080600454141515610efd57610efc81611aef565b5b5050565b610f0b8484613312565b610f1582826137d2565b50505050565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415151561100a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f53656e646572206973206e6f7420616e206f776e65720000000000000000000081525060200191505060405180910390fd5b61101786868686866112db565b90506000600560008360001916600019168152602001908152602001600020541415156110d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050505050565b600061114786868686866112db565b9050600060056000836000191660001916815260200190815260200160002054141515611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f53616665207472616e73616374696f6e20616c7265616479206578656375746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61120b81613a09565b600160056000836000191660001916815260200190815260200160002081905550611239868686865a613c87565b15156112d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f436f756c64206e6f7420657865637574652073616665207472616e736163746981526020017f6f6e00000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b505050505050565b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561147f578051825260208201915060208101905060208303925061145a565b6001836020036101000a0380198251168184511680821785525050505050509050018360028111156114ad57fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b60208310151561152b5780518252602082019150602081019050602083039250611506565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b611707858585855a613c87565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117da576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561182e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156118a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561198f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b60016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bb8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6003548111151515611c58576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018110151515611cf7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060048190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611dca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611e7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b600181565b6006602052816000526040600020602052806000526040600020600091509150505481565b606080600080600354604051908082528060200260200182016040528015611f285781602001602082028038833980820191505090505b5092506000915060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151561208357808383815181101515611fd857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050611f93565b82935050505090565b6040805190810160405280601881526020017f476e6f7369732053616665205465616d2045646974696f6e000000000000000081525081565b606060008060606000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415156121d957600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612134565b826040519080825280602002602001820160405280156122085781602001602082028038833980820191505090505b5090506000925060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515612363578181848151811015156122b857fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050612273565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612435576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156124895750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156124fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612625576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561284e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156128a25750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515612916576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612a03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612a575750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515612acb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515612bf3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60056020528060005260406000206000915090505481565b6000600454905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612ebd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060016003540310151515612f60576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015612fb45750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515613028576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515613150576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060036000815480929190600190039190505550806004541415156132d4576132d381611aef565b5b505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b600080600080600454141515613390576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e657273206861766520616c7265616479206265656e207365747570000081525060200191505060405180910390fd5b8451841115151561342f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600184101515156134ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60019250600091505b845182101561373d5784828151811015156134ee57fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415801561354e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b15156135c2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156136af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4475706c6963617465206f776e657220616464726573732070726f766964656481525060200191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080925081806001019250506134d7565b6001600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508451600381905550836004819055505050505050565b600060016000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156138e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6f64756c6573206861766520616c7265616479206265656e20696e6974696181526020017f6c697a656400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001806000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008273ffffffffffffffffffffffffffffffffffffffff16141515613a055761399082825a613d84565b1515613a04576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e0081525060200191505060405180910390fd5b5b5050565b60008060008060066000866000191660001916815260200190815260200160002093506000925060026000600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515613c065760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054141590503373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480613b465750805b15613b9f578015613b965760008460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82806001019350505b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169150613a94565b6004548310151515613c80576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4e6f7420656e6f75676820636f6e6669726d6174696f6e73000000000000000081525060200191505060405180910390fd5b5050505050565b60008060006002811115613c9757fe5b846002811115613ca357fe5b1415613cbc57613cb587878786613d9b565b9150613d7a565b60016002811115613cc957fe5b846002811115613cd557fe5b1415613ced57613ce6878685613d84565b9150613d79565b613cf685613db4565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b60008060008451602086018786f490509392505050565b6000806000845160208601878987f19050949350505050565b60008151602083016000f090509190505600a165627a7a72305820036a0afc03b39a75ef4535ed6b885910efa5f56561fc0f07e63f7cbe5494b4c60029", + "sourceMap": "272:4068:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;272:4068:4;;;;;;;", + "deployedSourceMap": "272:4068:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2093:595:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;693:303:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;693:303:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1266:638:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1266:638:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2346:618;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2346:618:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4009:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4009:329:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5613:129:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5613:129:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2841:429:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2841:429:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:459:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;5087:399:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5087:399:9;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:55:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:55:8;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:9;;;;;;;;;;;;;;;;;;;;;;;;;;;770:66:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;770:66:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5824:458:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5824: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;5824: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4794:738:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4794: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;4794:738:8;;;;;;;;;;;;;;;;;2031:474;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2031:474:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4147:751:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4147:751:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;536:46:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;536:46:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:115:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:115:9;;;;;;;;;;;;;;;;;;;;;;;3030:783;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3030:783: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595:9;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:1:9;2256:5;:10;;;;:38;;;;;337:3;2270:24;;:5;:24;;;;2256:38;2248:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:1;2387:6;:13;2394:5;2387:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2379:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2463:6;:23;337:3;2463:23;;;;;;;;;;;;;;;;;;;;;;;;;2447:6;:13;2454:5;2447:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2522:5;2496:6;:23;337:3;2496:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2537:10;;:12;;;;;;;;;;;;;2630:10;2617:9;;:23;;2613:68;;;2654:27;2670:10;2654:15;:27::i;:::-;2613:68;2093:595;;:::o;693:303:2:-;800:32;812:7;821:10;800:11;:32::i;:::-;967:22;980:2;984:4;967:12;:22::i;:::-;693:303;;;;:::o;1266:638:4:-;1605:23;1567:1;1545:6;:18;1552:10;1545:18;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;;1537:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:53;1650:2;1654:5;1661:4;1667:9;1678:5;1631:18;:53::i;:::-;1605:79;;1805:1;1774:10;:27;1785:15;1774:27;;;;;;;;;;;;;;;;;;:32;1766:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1896:1;1854:10;:27;1865:15;1854:27;;;;;;;;;;;;;;;;;:39;1882:10;1854:39;;;;;;;;;;;;;;;:43;;;;1266:638;;;;;;:::o;2346:618::-;2540:23;2566:53;2585:2;2589:5;2596:4;2602:9;2613:5;2566:18;:53::i;:::-;2540:79;;2668:1;2637:10;:27;2648:15;2637:27;;;;;;;;;;;;;;;;;;:32;2629:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2717:43;2744:15;2717:26;:43::i;:::-;2853:1;2823:10;:27;2834:15;2823:27;;;;;;;;;;;;;;;;;:31;;;;2872:46;2880:2;2884:5;2891:4;2897:9;2908;2872:7;:46::i;:::-;2864:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2346:618;;;;;;:::o;4009:329::-;4212:7;4274:4;4269:10;;4286:1;4281:7;;4290:4;4296:2;4300:5;4307:4;4313:9;4324:5;4252: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;;;4252:78:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4252:78:4;;;4242: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;;;4242:89:4;;;;;;;;;;;;;;;;4235:96;;4009:329;;;;;;;:::o;5613:129:9:-;5690:4;5734:1;5717:6;:13;5724:5;5717:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5710:25;;5613:129;;;:::o;2841:429:8:-;2973:12;3081:1;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;3050:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3217:46;3225:2;3229:5;3236:4;3242:9;3253;3217:7;:46::i;:::-;3207:56;;2841:429;;;;;;:::o;1311:459::-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1477:1:8;1466:6;1458:20;;;;:59;;;;;550:3;1482:35;;1490:6;1482:35;;;;1458:59;1450:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:1;1612:7;:15;1620:6;1612:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1604:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:7;:25;550:3;1694:25;;;;;;;;;;;;;;;;;;;;;;;;;1676:7;:15;1684:6;1676:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1757:6;1729:7;:25;550:3;1729:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1311:459;:::o;5087:399:9:-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5271:10:9;;5257;:24;;5249:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5405:1;5391:10;:15;;5383:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:10;5457:9;:22;;;;5087:399;:::o;626:248:5:-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;499:55:8:-;550:3;499:55;:::o;287:54:9:-;337:3;287:54;:::o;770:66:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5824:458:9:-;5890:9;5915:22;6009:13;6036:20;5954:10;;5940: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;5940:25:9;;;;5915:50;;6025:1;6009:17;;6059:6;:23;337:3;6059:23;;;;;;;;;;;;;;;;;;;;;;;;;6036:46;;6092:162;337:3;6098:31;;:12;:31;;;;6092:162;;;6160:12;6145:5;6151;6145:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6201:6;:20;6208:12;6201:20;;;;;;;;;;;;;;;;;;;;;;;;;6186:35;;6235:8;;;;;;;6092:162;;;6270:5;6263:12;;5824:458;;;;:::o;336:56:4:-;;;;;;;;;;;;;;;;;;;;:::o;4794:738:8:-;4861:9;4920:19;4953:21;5153:22;4942:1;4920:23;;4977:7;:25;550:3;4977:25;;;;;;;;;;;;;;;;;;;;;;;;;4953:49;;5012:132;550:3;5018:33;;:13;:33;;;;5012:132;;;5083:7;:22;5091:13;5083:22;;;;;;;;;;;;;;;;;;;;;;;;;5067:38;;5119:14;;;;;;;5012:132;;;5192:11;5178: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;5178:26:8;;;;5153:51;;5262:1;5248:15;;5289:7;:25;550:3;5289:25;;;;;;;;;;;;;;;;;;;;;;;;;5273:41;;5324:180;550:3;5330:33;;:13;:33;;;;5324:180;;;5400:13;5379:5;5385:11;5379:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5443:7;:22;5451:13;5443:22;;;;;;;;;;;;;;;;;;;;;;;;;5427:38;;5479:14;;;;;;;5324:180;;;5520:5;5513:12;;4794:738;;;;:::o;2031:474::-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:1:8;2234:6;2226:20;;;;:59;;;;;550:3;2250:35;;2258:6;2250:35;;;;2226:59;2218:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2370:6;2339:38;;:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2331:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2454:7;:15;2462:6;2454:15;;;;;;;;;;;;;;;;;;;;;;;;;2432:7;:19;2440:10;2432:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2497:1;2479:7;:15;2487:6;2479:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2031:474;;:::o;4147:751:9:-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:1:9;4318:8;:13;;;;:44;;;;;337:3;4335:27;;:8;:27;;;;4318:44;4310:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4475:1;4455:6;:16;4462:8;4455:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4447:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4621:1;4609:8;:13;;;;:44;;;;;337:3;4626:27;;:8;:27;;;;4609:44;4601:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:8;4706:29;;:6;:17;4713:9;4706:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4698:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4807:6;:16;4814:8;4807:16;;;;;;;;;;;;;;;;;;;;;;;;;4788:6;:16;4795:8;4788:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4853:8;4833:6;:17;4840:9;4833:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4890:1;4871:6;:16;4878:8;4871:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4147:751;;;:::o;536:46:4:-;;;;;;;;;;;;;;;;;:::o;5492:115:9:-;5561:7;5591:9;;5584:16;;5492:115;:::o;3030:783::-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3256:10:9;3251:1;3238:10;;:14;:28;;3230:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3431:1;3422:5;:10;;;;:38;;;;;337:3;3436:24;;:5;:24;;;;3422:38;3414:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3534:5;3513:26;;:6;:17;3520:9;3513:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3505:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:6;:13;3619:5;3612:13;;;;;;;;;;;;;;;;;;;;;;;;;3592:6;:17;3599:9;3592:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3651:1;3635:6;:13;3642:5;3635:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3662:10;;:12;;;;;;;;;;;;;;3755:10;3742:9;;:23;;3738:68;;;3779:27;3795:10;3779:15;:27::i;:::-;3738:68;3030:783;;;:::o;398:40:4:-;;;;;;;;;;;;;;;;;;;;:::o;643:1210:9:-;1249:20;1302:9;1401:13;879:1;866:9;;:14;858:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1022:7;:14;1008:10;:28;;1000:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:1;1146:10;:15;;1138:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;337:3;1249:38;;1314:1;1302:13;;1297:433;1321:7;:14;1317:1;:18;1297:433;;;1417:7;1425:1;1417:10;;;;;;;;;;;;;;;;;;1401:26;;1458:1;1449:5;:10;;;;:38;;;;;337:3;1463:24;;:5;:24;;;;1449:38;1441:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1605:1;1588:6;:13;1595:5;1588:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1580:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1680:5;1657:6;:20;1664:12;1657:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1714:5;1699:20;;1337:3;;;;;;;1297:433;;;337:3;1739:6;:20;1746:12;1739:20;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;1800:7;:14;1787:10;:27;;;;1836:10;1824:9;:22;;;;643:1210;;;;;:::o;735:409:8:-;849:1;820:7;:25;550:3;820:25;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;812:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;550:3;902:7;:25;550:3;902:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;966:1;960:2;:7;;;;956:181;;;1061:40;1081:2;1085:4;1091:9;1061:19;:40::i;:::-;1053:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;956:181;735:409;;:::o;2970:761:4:-;3062:37;3139:21;3216:20;3326:19;3102:10;:27;3113:15;3102:27;;;;;;;;;;;;;;;;;3062:67;;3163:1;3139:25;;3239:6;:23;337:3:9;3239:23:4;;;;;;;;;;;;;;;;;;;;;;;;;3216:46;;3272:380;337:3:9;3279:31:4;;:12;:31;;;;3272:380;;;3375:1;3348:9;:23;3358:12;3348:23;;;;;;;;;;;;;;;;:28;;3326:50;;3409:10;3393:26;;:12;:26;;;:44;;;;3423:14;3393:44;3390:203;;;3461:14;3457:88;;;3525:1;3499:9;:23;3509:12;3499:23;;;;;;;;;;;;;;;:27;;;;3457:88;3562:16;;;;;;;3390:203;3621:6;:20;3628:12;3621:20;;;;;;;;;;;;;;;;;;;;;;;;;3606:35;;3272:380;;;3686:9;;3669:13;:26;;3661:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970:761;;;;;:::o;3276:548:8:-;3407:12;3678:19;3452;3439:32;;;;;;;;:9;:32;;;;;;;;;3435:383;;;3495:35;3507:2;3511:5;3518:4;3524:5;3495:11;:35::i;:::-;3485:45;;3435:383;;;3562:27;3549:40;;;;;;;;:9;:40;;;;;;;;;3545:273;;;3613:36;3633:2;3637:4;3643:5;3613:19;:36::i;:::-;3603:46;;3545:273;;;3700:19;3714:4;3700:13;:19::i;:::-;3678:41;;3758:1;3743:11;:16;;;;3733:26;;3778:29;3795:11;3778:29;;;;;;;;;;;;;;;;;;;;;;3545:273;3435:383;3276:548;;;;;;;;:::o;4145:303::-;4247:12;4430:1;4427;4420:4;4414:11;4407:4;4401;4397:15;4393:2;4386:5;4373:59;4362:70;;4348:94;;;;;:::o;3830:309::-;3939:12;4121:1;4118;4111:4;4105:11;4098:4;4092;4088:15;4081:5;4077:2;4070:5;4065:58;4054:69;;4040:93;;;;;;:::o;4454:261::-;4523:19;4693:4;4687:11;4680:4;4674;4670:15;4667:1;4660:39;4645:54;;4631: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 => uint256) 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, \"Sender is not an owner\");\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n // It should not be possible to confirm an executed transaction\n require(isExecuted[transactionHash] == 0, \"Safe transaction already executed\");\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] == 0, \"Safe transaction already executed\");\n checkAndClearConfirmations(transactionHash);\n // Mark as executed and execute transaction.\n isExecuted[transactionHash] = 1;\n require(execute(to, value, data, operation, gasleft()), \"Could not execute safe transaction\");\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, \"Not enough confirmations\");\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": [ - 581 + 605 ] }, - "id": 582, + "id": 606, "nodeType": "SourceUnit", "nodes": [ { - "id": 347, + "id": 371, "literals": [ "solidity", "0.4", ".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": 348, + "id": 372, "nodeType": "ImportDirective", - "scope": 582, - "sourceUnit": 40, - "src": "24:26:3", + "scope": 606, + "sourceUnit": 64, + "src": "24:26:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 349, + "id": 373, "nodeType": "ImportDirective", - "scope": 582, - "sourceUnit": 609, - "src": "51:26:3", + "scope": 606, + "sourceUnit": 633, + "src": "51:26:4", "symbolAliases": [], "unitAlias": "" }, @@ -506,68 +506,68 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 350, + "id": 374, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 608, - "src": "306:10:3", + "referencedDeclaration": 632, + "src": "306:10:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$608", + "typeIdentifier": "t_contract$_MasterCopy_$632", "typeString": "contract MasterCopy" } }, - "id": 351, + "id": 375, "nodeType": "InheritanceSpecifier", - "src": "306:10:3" + "src": "306:10:4" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 352, + "id": 376, "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": 353, + "id": 377, "nodeType": "InheritanceSpecifier", - "src": "318:10:3" + "src": "318:10:4" } ], "contractDependencies": [ - 39, - 608, - 1022, - 1432, - 1449 + 63, + 632, + 1103, + 1511, + 1688 ], "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": 581, + "id": 605, "linearizedBaseContracts": [ - 581, - 39, - 1432, - 1022, - 608, - 1449 + 605, + 63, + 1511, + 1103, + 632, + 1688 ], "name": "GnosisSafeTeamEdition", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 356, + "id": 380, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 581, - "src": "336:56:3", + "scope": 605, + "src": "336:56:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -575,10 +575,10 @@ "typeString": "string" }, "typeName": { - "id": 354, + "id": 378, "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": 355, + "id": 379, "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": 359, + "id": 383, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 581, - "src": "398:40:3", + "scope": 605, + "src": "398:40:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -618,10 +618,10 @@ "typeString": "string" }, "typeName": { - "id": 357, + "id": 381, "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": 358, + "id": 382, "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": 363, + "id": 387, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 581, - "src": "536:46:3", + "scope": 605, + "src": "536:46:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -661,28 +661,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 362, + "id": 386, "keyType": { - "id": 360, + "id": 384, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "545:7:3", + "src": "545:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "536:28:3", + "src": "536:28:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 361, + "id": 385, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "556:7:3", + "src": "556:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -694,11 +694,11 @@ }, { "constant": false, - "id": 369, + "id": 393, "name": "isApproved", "nodeType": "VariableDeclaration", - "scope": 581, - "src": "770:66:3", + "scope": 605, + "src": "770:66:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -706,46 +706,46 @@ "typeString": "mapping(bytes32 => mapping(address => uint256))" }, "typeName": { - "id": 368, + "id": 392, "keyType": { - "id": 364, + "id": 388, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "779:7:3", + "src": "779:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "770:48:3", + "src": "770:48:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(bytes32 => mapping(address => uint256))" }, "valueType": { - "id": 367, + "id": 391, "keyType": { - "id": 365, + "id": 389, "name": "address", "nodeType": "ElementaryTypeName", - "src": "798:7:3", + "src": "798:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "790:27:3", + "src": "790:27:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 366, + "id": 390, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "809:7:3", + "src": "809:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -758,9 +758,9 @@ }, { "body": { - "id": 420, + "id": 444, "nodeType": "Block", - "src": "1457:447:3", + "src": "1457:447:4", "statements": [ { "expression": { @@ -772,7 +772,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 388, + "id": 412, "isConstant": false, "isLValue": false, "isPure": false, @@ -781,34 +781,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 383, + "id": 407, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "1545:6:3", + "referencedDeclaration": 1117, + "src": "1545:6:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 386, + "id": 410, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 384, + "id": 408, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1773, - "src": "1552:3:3", + "referencedDeclaration": 2659, + "src": "1552:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 385, + "id": 409, "isConstant": false, "isLValue": false, "isPure": false, @@ -816,7 +816,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1552:10:3", + "src": "1552:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -827,7 +827,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1545:18:3", + "src": "1545:18:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -838,14 +838,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 387, + "id": 411, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1567:1:3", + "src": "1567:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -853,7 +853,7 @@ }, "value": "0" }, - "src": "1545:23:3", + "src": "1545:23:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -862,14 +862,14 @@ { "argumentTypes": null, "hexValue": "53656e646572206973206e6f7420616e206f776e6572", - "id": 389, + "id": 413, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1570:24:3", + "src": "1570:24:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b22a5f47ffb62866097c90f90b5b53f76973769c84a10c62e12a07eb2ba1ef4a", @@ -889,21 +889,21 @@ "typeString": "literal_string \"Sender is not an owner\"" } ], - "id": 382, + "id": 406, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1537:7:3", + "referencedDeclaration": 2663, + "src": "1537:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 390, + "id": 414, "isConstant": false, "isLValue": false, "isPure": false, @@ -911,28 +911,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1537:58:3", + "src": "1537:58:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 391, + "id": 415, "nodeType": "ExpressionStatement", - "src": "1537:58:3" + "src": "1537:58:4" }, { "assignments": [ - 393 + 417 ], "declarations": [ { "constant": false, - "id": 393, + "id": 417, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 421, - "src": "1605:23:3", + "scope": 445, + "src": "1605:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -940,10 +940,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 392, + "id": 416, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1605:7:3", + "src": "1605:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -953,18 +953,18 @@ "visibility": "internal" } ], - "id": 401, + "id": 425, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 395, + "id": 419, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "1650:2:3", + "referencedDeclaration": 395, + "src": "1650:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -972,12 +972,12 @@ }, { "argumentTypes": null, - "id": 396, + "id": 420, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 373, - "src": "1654:5:3", + "referencedDeclaration": 397, + "src": "1654:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -985,12 +985,12 @@ }, { "argumentTypes": null, - "id": 397, + "id": 421, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 375, - "src": "1661:4:3", + "referencedDeclaration": 399, + "src": "1661:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -998,25 +998,25 @@ }, { "argumentTypes": null, - "id": 398, + "id": 422, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 377, - "src": "1667:9:3", + "referencedDeclaration": 401, + "src": "1667:9:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 399, + "id": 423, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 379, - "src": "1678:5:3", + "referencedDeclaration": 403, + "src": "1678:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1038,7 +1038,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -1046,18 +1046,18 @@ "typeString": "uint256" } ], - "id": 394, + "id": 418, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "1631:18:3", + "referencedDeclaration": 604, + "src": "1631: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": 400, + "id": 424, "isConstant": false, "isLValue": false, "isPure": false, @@ -1065,14 +1065,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1631:53:3", + "src": "1631:53:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "1605:79:3" + "src": "1605:79:4" }, { "expression": { @@ -1084,7 +1084,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 407, + "id": 431, "isConstant": false, "isLValue": false, "isPure": false, @@ -1093,26 +1093,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 403, + "id": 427, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 363, - "src": "1774:10:3", + "referencedDeclaration": 387, + "src": "1774:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 405, + "id": 429, "indexExpression": { "argumentTypes": null, - "id": 404, + "id": 428, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "1785:15:3", + "referencedDeclaration": 417, + "src": "1785:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1123,7 +1123,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1774:27:3", + "src": "1774:27:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1134,14 +1134,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 406, + "id": 430, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1805:1:3", + "src": "1805:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1149,7 +1149,7 @@ }, "value": "0" }, - "src": "1774:32:3", + "src": "1774:32:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1158,14 +1158,14 @@ { "argumentTypes": null, "hexValue": "53616665207472616e73616374696f6e20616c7265616479206578656375746564", - "id": 408, + "id": 432, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1808:35:3", + "src": "1808:35:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", @@ -1185,21 +1185,21 @@ "typeString": "literal_string \"Safe transaction already executed\"" } ], - "id": 402, + "id": 426, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1766:7:3", + "referencedDeclaration": 2663, + "src": "1766:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 409, + "id": 433, "isConstant": false, "isLValue": false, "isPure": false, @@ -1207,20 +1207,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1766:78:3", + "src": "1766:78:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 410, + "id": 434, "nodeType": "ExpressionStatement", - "src": "1766:78:3" + "src": "1766:78:4" }, { "expression": { "argumentTypes": null, - "id": 418, + "id": 442, "isConstant": false, "isLValue": false, "isPure": false, @@ -1231,26 +1231,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 411, + "id": 435, "name": "isApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, - "src": "1854:10:3", + "referencedDeclaration": 393, + "src": "1854:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(bytes32 => mapping(address => uint256))" } }, - "id": 415, + "id": 439, "indexExpression": { "argumentTypes": null, - "id": 412, + "id": 436, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "1865:15:3", + "referencedDeclaration": 417, + "src": "1865:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1261,29 +1261,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1854:27:3", + "src": "1854:27:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 416, + "id": 440, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 413, + "id": 437, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1773, - "src": "1882:3:3", + "referencedDeclaration": 2659, + "src": "1882:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 414, + "id": 438, "isConstant": false, "isLValue": false, "isPure": false, @@ -1291,7 +1291,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1882:10:3", + "src": "1882:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1302,7 +1302,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1854:39:3", + "src": "1854:39:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1313,14 +1313,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 417, + "id": 441, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1896:1:3", + "src": "1896:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1328,20 +1328,20 @@ }, "value": "1" }, - "src": "1854:43:3", + "src": "1854:43:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 419, + "id": 443, "nodeType": "ExpressionStatement", - "src": "1854:43:3" + "src": "1854: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": 421, + "id": 445, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1349,16 +1349,16 @@ "name": "approveTransactionWithParameters", "nodeType": "FunctionDefinition", "parameters": { - "id": 380, + "id": 404, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 371, + "id": 395, "name": "to", "nodeType": "VariableDeclaration", - "scope": 421, - "src": "1317:10:3", + "scope": 445, + "src": "1317:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1366,10 +1366,10 @@ "typeString": "address" }, "typeName": { - "id": 370, + "id": 394, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1317:7:3", + "src": "1317:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1380,11 +1380,11 @@ }, { "constant": false, - "id": 373, + "id": 397, "name": "value", "nodeType": "VariableDeclaration", - "scope": 421, - "src": "1338:13:3", + "scope": 445, + "src": "1338:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1392,10 +1392,10 @@ "typeString": "uint256" }, "typeName": { - "id": 372, + "id": 396, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1338:7:3", + "src": "1338:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1406,11 +1406,11 @@ }, { "constant": false, - "id": 375, + "id": 399, "name": "data", "nodeType": "VariableDeclaration", - "scope": 421, - "src": "1362:10:3", + "scope": 445, + "src": "1362:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1418,10 +1418,10 @@ "typeString": "bytes" }, "typeName": { - "id": 374, + "id": 398, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1362:5:3", + "src": "1362:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1432,26 +1432,26 @@ }, { "constant": false, - "id": 377, + "id": 401, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 421, - "src": "1383:24:3", + "scope": 445, + "src": "1383: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": 376, + "id": 400, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "1383:14:3", + "referencedDeclaration": 29, + "src": "1383:14:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -1460,11 +1460,11 @@ }, { "constant": false, - "id": 379, + "id": 403, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 421, - "src": "1418:13:3", + "scope": 445, + "src": "1418:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1472,10 +1472,10 @@ "typeString": "uint256" }, "typeName": { - "id": 378, + "id": 402, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1418:7:3", + "src": "1418:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1485,39 +1485,39 @@ "visibility": "internal" } ], - "src": "1307:130:3" + "src": "1307:130:4" }, "payable": false, "returnParameters": { - "id": 381, + "id": 405, "nodeType": "ParameterList", "parameters": [], - "src": "1457:0:3" + "src": "1457:0:4" }, - "scope": 581, - "src": "1266:638:3", + "scope": 605, + "src": "1266:638:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 475, + "id": 499, "nodeType": "Block", - "src": "2530:434:3", + "src": "2530:434:4", "statements": [ { "assignments": [ - 435 + 459 ], "declarations": [ { "constant": false, - "id": 435, + "id": 459, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "2540:23:3", + "scope": 500, + "src": "2540:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1525,10 +1525,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 434, + "id": 458, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2540:7:3", + "src": "2540:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1538,18 +1538,18 @@ "visibility": "internal" } ], - "id": 443, + "id": 467, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 437, + "id": 461, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 423, - "src": "2585:2:3", + "referencedDeclaration": 447, + "src": "2585:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1557,12 +1557,12 @@ }, { "argumentTypes": null, - "id": 438, + "id": 462, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 425, - "src": "2589:5:3", + "referencedDeclaration": 449, + "src": "2589:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1570,12 +1570,12 @@ }, { "argumentTypes": null, - "id": 439, + "id": 463, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "2596:4:3", + "referencedDeclaration": 451, + "src": "2596:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1583,25 +1583,25 @@ }, { "argumentTypes": null, - "id": 440, + "id": 464, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 429, - "src": "2602:9:3", + "referencedDeclaration": 453, + "src": "2602:9:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 441, + "id": 465, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 431, - "src": "2613:5:3", + "referencedDeclaration": 455, + "src": "2613:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1623,7 +1623,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -1631,18 +1631,18 @@ "typeString": "uint256" } ], - "id": 436, + "id": 460, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "2566:18:3", + "referencedDeclaration": 604, + "src": "2566: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": 442, + "id": 466, "isConstant": false, "isLValue": false, "isPure": false, @@ -1650,14 +1650,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2566:53:3", + "src": "2566:53:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2540:79:3" + "src": "2540:79:4" }, { "expression": { @@ -1669,7 +1669,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 449, + "id": 473, "isConstant": false, "isLValue": false, "isPure": false, @@ -1678,26 +1678,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 445, + "id": 469, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 363, - "src": "2637:10:3", + "referencedDeclaration": 387, + "src": "2637:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 447, + "id": 471, "indexExpression": { "argumentTypes": null, - "id": 446, + "id": 470, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 435, - "src": "2648:15:3", + "referencedDeclaration": 459, + "src": "2648:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1708,7 +1708,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2637:27:3", + "src": "2637:27:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1719,14 +1719,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 448, + "id": 472, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2668:1:3", + "src": "2668:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1734,7 +1734,7 @@ }, "value": "0" }, - "src": "2637:32:3", + "src": "2637:32:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1743,14 +1743,14 @@ { "argumentTypes": null, "hexValue": "53616665207472616e73616374696f6e20616c7265616479206578656375746564", - "id": 450, + "id": 474, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2671:35:3", + "src": "2671:35:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", @@ -1770,21 +1770,21 @@ "typeString": "literal_string \"Safe transaction already executed\"" } ], - "id": 444, + "id": 468, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2629:7:3", + "referencedDeclaration": 2663, + "src": "2629:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 451, + "id": 475, "isConstant": false, "isLValue": false, "isPure": false, @@ -1792,15 +1792,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2629:78:3", + "src": "2629:78:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 452, + "id": 476, "nodeType": "ExpressionStatement", - "src": "2629:78:3" + "src": "2629:78:4" }, { "expression": { @@ -1808,12 +1808,12 @@ "arguments": [ { "argumentTypes": null, - "id": 454, + "id": 478, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 435, - "src": "2744:15:3", + "referencedDeclaration": 459, + "src": "2744:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1827,18 +1827,18 @@ "typeString": "bytes32" } ], - "id": 453, + "id": 477, "name": "checkAndClearConfirmations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 546, - "src": "2717:26:3", + "referencedDeclaration": 570, + "src": "2717:26:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 455, + "id": 479, "isConstant": false, "isLValue": false, "isPure": false, @@ -1846,20 +1846,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2717:43:3", + "src": "2717:43:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 456, + "id": 480, "nodeType": "ExpressionStatement", - "src": "2717:43:3" + "src": "2717:43:4" }, { "expression": { "argumentTypes": null, - "id": 461, + "id": 485, "isConstant": false, "isLValue": false, "isPure": false, @@ -1868,26 +1868,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 457, + "id": 481, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 363, - "src": "2823:10:3", + "referencedDeclaration": 387, + "src": "2823:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 459, + "id": 483, "indexExpression": { "argumentTypes": null, - "id": 458, + "id": 482, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 435, - "src": "2834:15:3", + "referencedDeclaration": 459, + "src": "2834:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1898,7 +1898,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2823:27:3", + "src": "2823:27:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1909,14 +1909,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 460, + "id": 484, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2853:1:3", + "src": "2853:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -1924,15 +1924,15 @@ }, "value": "1" }, - "src": "2823:31:3", + "src": "2823:31:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 462, + "id": 486, "nodeType": "ExpressionStatement", - "src": "2823:31:3" + "src": "2823:31:4" }, { "expression": { @@ -1943,12 +1943,12 @@ "arguments": [ { "argumentTypes": null, - "id": 465, + "id": 489, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 423, - "src": "2880:2:3", + "referencedDeclaration": 447, + "src": "2880:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1956,12 +1956,12 @@ }, { "argumentTypes": null, - "id": 466, + "id": 490, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 425, - "src": "2884:5:3", + "referencedDeclaration": 449, + "src": "2884:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1969,12 +1969,12 @@ }, { "argumentTypes": null, - "id": 467, + "id": 491, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "2891:4:3", + "referencedDeclaration": 451, + "src": "2891:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1982,14 +1982,14 @@ }, { "argumentTypes": null, - "id": 468, + "id": 492, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 429, - "src": "2897:9:3", + "referencedDeclaration": 453, + "src": "2897:9:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -1998,18 +1998,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 469, + "id": 493, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "2908:7:3", + "referencedDeclaration": 2652, + "src": "2908:7:4", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 470, + "id": 494, "isConstant": false, "isLValue": false, "isPure": false, @@ -2017,7 +2017,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:9:3", + "src": "2908:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2039,7 +2039,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -2047,18 +2047,18 @@ "typeString": "uint256" } ], - "id": 464, + "id": 488, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "2872:7:3", + "referencedDeclaration": 992, + "src": "2872: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": 471, + "id": 495, "isConstant": false, "isLValue": false, "isPure": false, @@ -2066,7 +2066,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2872:46:3", + "src": "2872:46:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2075,14 +2075,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f7420657865637574652073616665207472616e73616374696f6e", - "id": 472, + "id": 496, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2920:36:3", + "src": "2920:36:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d12b254798790cac45e0b54201b0ecf8f3257f9e4c1cfc4633e272006616c878", @@ -2102,21 +2102,21 @@ "typeString": "literal_string \"Could not execute safe transaction\"" } ], - "id": 463, + "id": 487, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2864:7:3", + "referencedDeclaration": 2663, + "src": "2864:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 473, + "id": 497, "isConstant": false, "isLValue": false, "isPure": false, @@ -2124,20 +2124,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2864:93:3", + "src": "2864:93:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 474, + "id": 498, "nodeType": "ExpressionStatement", - "src": "2864:93:3" + "src": "2864:93:4" } ] }, "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": 476, + "id": 500, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2145,16 +2145,16 @@ "name": "execTransactionIfApproved", "nodeType": "FunctionDefinition", "parameters": { - "id": 432, + "id": 456, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 423, + "id": 447, "name": "to", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "2390:10:3", + "scope": 500, + "src": "2390:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2162,10 +2162,10 @@ "typeString": "address" }, "typeName": { - "id": 422, + "id": 446, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2390:7:3", + "src": "2390:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2176,11 +2176,11 @@ }, { "constant": false, - "id": 425, + "id": 449, "name": "value", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "2411:13:3", + "scope": 500, + "src": "2411:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2188,10 +2188,10 @@ "typeString": "uint256" }, "typeName": { - "id": 424, + "id": 448, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2411:7:3", + "src": "2411:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2202,11 +2202,11 @@ }, { "constant": false, - "id": 427, + "id": 451, "name": "data", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "2435:10:3", + "scope": 500, + "src": "2435:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2214,10 +2214,10 @@ "typeString": "bytes" }, "typeName": { - "id": 426, + "id": 450, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2435:5:3", + "src": "2435:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2228,26 +2228,26 @@ }, { "constant": false, - "id": 429, + "id": 453, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "2456:24:3", + "scope": 500, + "src": "2456: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": 428, + "id": 452, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "2456:14:3", + "referencedDeclaration": 29, + "src": "2456:14:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -2256,11 +2256,11 @@ }, { "constant": false, - "id": 431, + "id": 455, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "2491:13:3", + "scope": 500, + "src": "2491:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2268,10 +2268,10 @@ "typeString": "uint256" }, "typeName": { - "id": 430, + "id": 454, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2491:7:3", + "src": "2491:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2281,39 +2281,39 @@ "visibility": "internal" } ], - "src": "2380:130:3" + "src": "2380:130:4" }, "payable": false, "returnParameters": { - "id": 433, + "id": 457, "nodeType": "ParameterList", "parameters": [], - "src": "2530:0:3" + "src": "2530:0:4" }, - "scope": 581, - "src": "2346:618:3", + "scope": 605, + "src": "2346:618:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 545, + "id": 569, "nodeType": "Block", - "src": "3052:679:3", + "src": "3052:679:4", "statements": [ { "assignments": [ - 484 + 508 ], "declarations": [ { "constant": false, - "id": 484, + "id": 508, "name": "approvals", "nodeType": "VariableDeclaration", - "scope": 546, - "src": "3062:37:3", + "scope": 570, + "src": "3062:37:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2321,28 +2321,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 483, + "id": 507, "keyType": { - "id": 481, + "id": 505, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3070:7:3", + "src": "3070:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3062:27:3", + "src": "3062:27:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 482, + "id": 506, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3081:7:3", + "src": "3081:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2353,31 +2353,31 @@ "visibility": "internal" } ], - "id": 488, + "id": 512, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 485, + "id": 509, "name": "isApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, - "src": "3102:10:3", + "referencedDeclaration": 393, + "src": "3102:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(bytes32 => mapping(address => uint256))" } }, - "id": 487, + "id": 511, "indexExpression": { "argumentTypes": null, - "id": 486, + "id": 510, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "3113:15:3", + "referencedDeclaration": 502, + "src": "3113:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2388,27 +2388,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3102:27:3", + "src": "3102:27:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "nodeType": "VariableDeclarationStatement", - "src": "3062:67:3" + "src": "3062:67:4" }, { "assignments": [ - 490 + 514 ], "declarations": [ { "constant": false, - "id": 490, + "id": 514, "name": "confirmations", "nodeType": "VariableDeclaration", - "scope": 546, - "src": "3139:21:3", + "scope": 570, + "src": "3139:21:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2416,10 +2416,10 @@ "typeString": "uint256" }, "typeName": { - "id": 489, + "id": 513, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3139:7:3", + "src": "3139:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2429,18 +2429,18 @@ "visibility": "internal" } ], - "id": 492, + "id": 516, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 491, + "id": 515, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3163:1:3", + "src": "3163:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2449,20 +2449,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3139:25:3" + "src": "3139:25:4" }, { "assignments": [ - 494 + 518 ], "declarations": [ { "constant": false, - "id": 494, + "id": 518, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 546, - "src": "3216:20:3", + "scope": 570, + "src": "3216:20:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2470,10 +2470,10 @@ "typeString": "address" }, "typeName": { - "id": 493, + "id": 517, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3216:7:3", + "src": "3216:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2483,31 +2483,31 @@ "visibility": "internal" } ], - "id": 498, + "id": 522, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 495, + "id": 519, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "3239:6:3", + "referencedDeclaration": 1117, + "src": "3239:6:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 497, + "id": 521, "indexExpression": { "argumentTypes": null, - "id": 496, + "id": 520, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "3246:15:3", + "referencedDeclaration": 1113, + "src": "3246:15:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2518,33 +2518,33 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3239:23:3", + "src": "3239:23:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "3216:46:3" + "src": "3216:46:4" }, { "body": { - "id": 536, + "id": 560, "nodeType": "Block", - "src": "3312:340:3", + "src": "3312:340:4", "statements": [ { "assignments": [ - 503 + 527 ], "declarations": [ { "constant": false, - "id": 503, + "id": 527, "name": "ownerConfirmed", "nodeType": "VariableDeclaration", - "scope": 546, - "src": "3326:19:3", + "scope": 570, + "src": "3326:19:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2552,10 +2552,10 @@ "typeString": "bool" }, "typeName": { - "id": 502, + "id": 526, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3326:4:3", + "src": "3326:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2565,14 +2565,14 @@ "visibility": "internal" } ], - "id": 509, + "id": 533, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 508, + "id": 532, "isConstant": false, "isLValue": false, "isPure": false, @@ -2581,26 +2581,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 504, + "id": 528, "name": "approvals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "3348:9:3", + "referencedDeclaration": 508, + "src": "3348:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 506, + "id": 530, "indexExpression": { "argumentTypes": null, - "id": 505, + "id": 529, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "3358:12:3", + "referencedDeclaration": 518, + "src": "3358:12:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2611,7 +2611,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3348:23:3", + "src": "3348:23:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2622,14 +2622,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 507, + "id": 531, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3375:1:3", + "src": "3375:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2637,14 +2637,14 @@ }, "value": "0" }, - "src": "3348:28:3", + "src": "3348:28:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "3326:50:3" + "src": "3326:50:4" }, { "condition": { @@ -2653,7 +2653,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 515, + "id": 539, "isConstant": false, "isLValue": false, "isPure": false, @@ -2664,19 +2664,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 513, + "id": 537, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 510, + "id": 534, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "3393:12:3", + "referencedDeclaration": 518, + "src": "3393:12:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2688,18 +2688,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 511, + "id": 535, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1773, - "src": "3409:3:3", + "referencedDeclaration": 2659, + "src": "3409:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 512, + "id": 536, "isConstant": false, "isLValue": false, "isPure": false, @@ -2707,13 +2707,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3409:10:3", + "src": "3409:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3393:26:3", + "src": "3393:26:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2723,59 +2723,59 @@ "operator": "||", "rightExpression": { "argumentTypes": null, - "id": 514, + "id": 538, "name": "ownerConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "3423:14:3", + "referencedDeclaration": 527, + "src": "3423:14:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3393:44:3", + "src": "3393:44:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 529, + "id": 553, "nodeType": "IfStatement", - "src": "3390:203:3", + "src": "3390:203:4", "trueBody": { - "id": 528, + "id": 552, "nodeType": "Block", - "src": "3439:154:3", + "src": "3439:154:4", "statements": [ { "condition": { "argumentTypes": null, - "id": 516, + "id": 540, "name": "ownerConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "3461:14:3", + "referencedDeclaration": 527, + "src": "3461:14:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 524, + "id": 548, "nodeType": "IfStatement", - "src": "3457:88:3", + "src": "3457:88:4", "trueBody": { - "id": 523, + "id": 547, "nodeType": "Block", - "src": "3477:68:3", + "src": "3477:68:4", "statements": [ { "expression": { "argumentTypes": null, - "id": 521, + "id": 545, "isConstant": false, "isLValue": false, "isPure": false, @@ -2784,26 +2784,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 517, + "id": 541, "name": "approvals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "3499:9:3", + "referencedDeclaration": 508, + "src": "3499:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 519, + "id": 543, "indexExpression": { "argumentTypes": null, - "id": 518, + "id": 542, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "3509:12:3", + "referencedDeclaration": 518, + "src": "3509:12:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2814,7 +2814,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3499:23:3", + "src": "3499:23:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2825,14 +2825,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 520, + "id": 544, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3525:1:3", + "src": "3525:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2840,15 +2840,15 @@ }, "value": "0" }, - "src": "3499:27:3", + "src": "3499:27:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 522, + "id": 546, "nodeType": "ExpressionStatement", - "src": "3499:27:3" + "src": "3499:27:4" } ] } @@ -2856,7 +2856,7 @@ { "expression": { "argumentTypes": null, - "id": 526, + "id": 550, "isConstant": false, "isLValue": false, "isPure": false, @@ -2864,15 +2864,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3562:16:3", + "src": "3562:16:4", "subExpression": { "argumentTypes": null, - "id": 525, + "id": 549, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 490, - "src": "3562:13:3", + "referencedDeclaration": 514, + "src": "3562:13:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2883,9 +2883,9 @@ "typeString": "uint256" } }, - "id": 527, + "id": 551, "nodeType": "ExpressionStatement", - "src": "3562:16:3" + "src": "3562:16:4" } ] } @@ -2893,19 +2893,19 @@ { "expression": { "argumentTypes": null, - "id": 534, + "id": 558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 530, + "id": 554, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "3606:12:3", + "referencedDeclaration": 518, + "src": "3606:12:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2917,26 +2917,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 531, + "id": 555, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "3621:6:3", + "referencedDeclaration": 1117, + "src": "3621:6:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 533, + "id": 557, "indexExpression": { "argumentTypes": null, - "id": 532, + "id": 556, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "3628:12:3", + "referencedDeclaration": 518, + "src": "3628:12:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2947,21 +2947,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3621:20:3", + "src": "3621:20:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3606:35:3", + "src": "3606:35:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 535, + "id": 559, "nodeType": "ExpressionStatement", - "src": "3606:35:3" + "src": "3606:35:4" } ] }, @@ -2971,19 +2971,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 501, + "id": 525, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 499, + "id": 523, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "3279:12:3", + "referencedDeclaration": 518, + "src": "3279:12:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2993,26 +2993,26 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 500, + "id": 524, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "3295:15:3", + "referencedDeclaration": 1113, + "src": "3295:15:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3279:31:3", + "src": "3279:31:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 537, + "id": 561, "nodeType": "WhileStatement", - "src": "3272:380:3" + "src": "3272:380:4" }, { "expression": { @@ -3024,19 +3024,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 541, + "id": 565, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 539, + "id": 563, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 490, - "src": "3669:13:3", + "referencedDeclaration": 514, + "src": "3669:13:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3046,18 +3046,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 540, + "id": 564, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "3686:9:3", + "referencedDeclaration": 1121, + "src": "3686:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3669:26:3", + "src": "3669:26:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3066,14 +3066,14 @@ { "argumentTypes": null, "hexValue": "4e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 542, + "id": 566, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3697:26:3", + "src": "3697:26:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b345da2aaad39251196728cc7926bed93e890843c2a47c2cdd1122427d828094", @@ -3093,21 +3093,21 @@ "typeString": "literal_string \"Not enough confirmations\"" } ], - "id": 538, + "id": 562, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "3661:7:3", + "referencedDeclaration": 2663, + "src": "3661:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 543, + "id": 567, "isConstant": false, "isLValue": false, "isPure": false, @@ -3115,20 +3115,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3661:63:3", + "src": "3661:63:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 544, + "id": 568, "nodeType": "ExpressionStatement", - "src": "3661:63:3" + "src": "3661:63:4" } ] }, "documentation": null, - "id": 546, + "id": 570, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3136,16 +3136,16 @@ "name": "checkAndClearConfirmations", "nodeType": "FunctionDefinition", "parameters": { - "id": 479, + "id": 503, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 478, + "id": 502, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 546, - "src": "3006:23:3", + "scope": 570, + "src": "3006:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3153,10 +3153,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 477, + "id": 501, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3006:7:3", + "src": "3006:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3166,26 +3166,26 @@ "visibility": "internal" } ], - "src": "3005:25:3" + "src": "3005:25:4" }, "payable": false, "returnParameters": { - "id": 480, + "id": 504, "nodeType": "ParameterList", "parameters": [], - "src": "3052:0:3" + "src": "3052:0:4" }, - "scope": 581, - "src": "2970:761:3", + "scope": 605, + "src": "2970:761:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 579, + "id": 603, "nodeType": "Block", - "src": "4225:113:3", + "src": "4225:113:4", "statements": [ { "expression": { @@ -3200,14 +3200,14 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 565, + "id": 589, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4274:4:3", + "src": "4274:4:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", @@ -3223,20 +3223,20 @@ "typeString": "int_const 25" } ], - "id": 564, + "id": 588, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4269:4:3", + "src": "4269:4:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 566, + "id": 590, "isConstant": false, "isLValue": false, "isPure": true, @@ -3244,7 +3244,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4269:10:3", + "src": "4269:10:4", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -3256,14 +3256,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 568, + "id": 592, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4286:1:3", + "src": "4286:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3279,20 +3279,20 @@ "typeString": "int_const 0" } ], - "id": 567, + "id": 591, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4281:4:3", + "src": "4281:4:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 569, + "id": 593, "isConstant": false, "isLValue": false, "isPure": true, @@ -3300,7 +3300,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4281:7:3", + "src": "4281:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -3308,25 +3308,25 @@ }, { "argumentTypes": null, - "id": 570, + "id": 594, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1806, - "src": "4290:4:3", + "referencedDeclaration": 2696, + "src": "4290:4:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$581", + "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$605", "typeString": "contract GnosisSafeTeamEdition" } }, { "argumentTypes": null, - "id": 571, + "id": 595, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "4296:2:3", + "referencedDeclaration": 572, + "src": "4296:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3334,12 +3334,12 @@ }, { "argumentTypes": null, - "id": 572, + "id": 596, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "4300:5:3", + "referencedDeclaration": 574, + "src": "4300:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3347,12 +3347,12 @@ }, { "argumentTypes": null, - "id": 573, + "id": 597, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 552, - "src": "4307:4:3", + "referencedDeclaration": 576, + "src": "4307:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3360,25 +3360,25 @@ }, { "argumentTypes": null, - "id": 574, + "id": 598, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "4313:9:3", + "referencedDeclaration": 578, + "src": "4313:9:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 575, + "id": 599, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "4324:5:3", + "referencedDeclaration": 580, + "src": "4324:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3396,7 +3396,7 @@ "typeString": "bytes1" }, { - "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$581", + "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$605", "typeString": "contract GnosisSafeTeamEdition" }, { @@ -3412,7 +3412,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -3422,18 +3422,18 @@ ], "expression": { "argumentTypes": null, - "id": 562, + "id": 586, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1760, - "src": "4252:3:3", + "referencedDeclaration": 2646, + "src": "4252:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 563, + "id": 587, "isConstant": false, "isLValue": false, "isPure": true, @@ -3441,13 +3441,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4252:16:3", + "src": "4252:16:4", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 576, + "id": 600, "isConstant": false, "isLValue": false, "isPure": false, @@ -3455,7 +3455,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4252:78:3", + "src": "4252:78:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3469,18 +3469,18 @@ "typeString": "bytes memory" } ], - "id": 561, + "id": 585, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "4242:9:3", + "referencedDeclaration": 2653, + "src": "4242:9:4", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 577, + "id": 601, "isConstant": false, "isLValue": false, "isPure": false, @@ -3488,21 +3488,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4242:89:3", + "src": "4242:89:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 560, - "id": 578, + "functionReturnParameters": 584, + "id": 602, "nodeType": "Return", - "src": "4235:96:3" + "src": "4235: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": 580, + "id": 604, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3510,16 +3510,16 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 557, + "id": 581, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 548, + "id": 572, "name": "to", "nodeType": "VariableDeclaration", - "scope": 580, - "src": "4046:10:3", + "scope": 604, + "src": "4046:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3527,10 +3527,10 @@ "typeString": "address" }, "typeName": { - "id": 547, + "id": 571, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4046:7:3", + "src": "4046:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3541,11 +3541,11 @@ }, { "constant": false, - "id": 550, + "id": 574, "name": "value", "nodeType": "VariableDeclaration", - "scope": 580, - "src": "4067:13:3", + "scope": 604, + "src": "4067:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3553,10 +3553,10 @@ "typeString": "uint256" }, "typeName": { - "id": 549, + "id": 573, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4067:7:3", + "src": "4067:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3567,11 +3567,11 @@ }, { "constant": false, - "id": 552, + "id": 576, "name": "data", "nodeType": "VariableDeclaration", - "scope": 580, - "src": "4091:10:3", + "scope": 604, + "src": "4091:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3579,10 +3579,10 @@ "typeString": "bytes" }, "typeName": { - "id": 551, + "id": 575, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4091:5:3", + "src": "4091:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3593,26 +3593,26 @@ }, { "constant": false, - "id": 554, + "id": 578, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 580, - "src": "4112:24:3", + "scope": 604, + "src": "4112: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": 553, + "id": 577, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "4112:14:3", + "referencedDeclaration": 29, + "src": "4112:14:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -3621,11 +3621,11 @@ }, { "constant": false, - "id": 556, + "id": 580, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 580, - "src": "4147:13:3", + "scope": 604, + "src": "4147:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3633,10 +3633,10 @@ "typeString": "uint256" }, "typeName": { - "id": 555, + "id": 579, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4147:7:3", + "src": "4147:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3646,20 +3646,20 @@ "visibility": "internal" } ], - "src": "4036:130:3" + "src": "4036:130:4" }, "payable": false, "returnParameters": { - "id": 560, + "id": 584, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 559, + "id": 583, "name": "", "nodeType": "VariableDeclaration", - "scope": 580, - "src": "4212:7:3", + "scope": 604, + "src": "4212:7:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3667,10 +3667,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 558, + "id": 582, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4212:7:3", + "src": "4212:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3680,60 +3680,60 @@ "visibility": "internal" } ], - "src": "4211:9:3" + "src": "4211:9:4" }, - "scope": 581, - "src": "4009:329:3", + "scope": 605, + "src": "4009:329:4", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 582, - "src": "272:4068:3" + "scope": 606, + "src": "272:4068:4" } ], - "src": "0:4341:3" + "src": "0:4341:4" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/GnosisSafeTeamEdition.sol", "exportedSymbols": { "GnosisSafeTeamEdition": [ - 581 + 605 ] }, - "id": 582, + "id": 606, "nodeType": "SourceUnit", "nodes": [ { - "id": 347, + "id": 371, "literals": [ "solidity", "0.4", ".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": 348, + "id": 372, "nodeType": "ImportDirective", - "scope": 582, - "sourceUnit": 40, - "src": "24:26:3", + "scope": 606, + "sourceUnit": 64, + "src": "24:26:4", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 349, + "id": 373, "nodeType": "ImportDirective", - "scope": 582, - "sourceUnit": 609, - "src": "51:26:3", + "scope": 606, + "sourceUnit": 633, + "src": "51:26:4", "symbolAliases": [], "unitAlias": "" }, @@ -3743,68 +3743,68 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 350, + "id": 374, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 608, - "src": "306:10:3", + "referencedDeclaration": 632, + "src": "306:10:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$608", + "typeIdentifier": "t_contract$_MasterCopy_$632", "typeString": "contract MasterCopy" } }, - "id": 351, + "id": 375, "nodeType": "InheritanceSpecifier", - "src": "306:10:3" + "src": "306:10:4" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 352, + "id": 376, "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": 353, + "id": 377, "nodeType": "InheritanceSpecifier", - "src": "318:10:3" + "src": "318:10:4" } ], "contractDependencies": [ - 39, - 608, - 1022, - 1432, - 1449 + 63, + 632, + 1103, + 1511, + 1688 ], "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": 581, + "id": 605, "linearizedBaseContracts": [ - 581, - 39, - 1432, - 1022, - 608, - 1449 + 605, + 63, + 1511, + 1103, + 632, + 1688 ], "name": "GnosisSafeTeamEdition", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 356, + "id": 380, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 581, - "src": "336:56:3", + "scope": 605, + "src": "336:56:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3812,10 +3812,10 @@ "typeString": "string" }, "typeName": { - "id": 354, + "id": 378, "name": "string", "nodeType": "ElementaryTypeName", - "src": "336:6:3", + "src": "336:6:4", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3824,14 +3824,14 @@ "value": { "argumentTypes": null, "hexValue": "476e6f7369732053616665205465616d2045646974696f6e", - "id": 355, + "id": 379, "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", @@ -3843,11 +3843,11 @@ }, { "constant": true, - "id": 359, + "id": 383, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 581, - "src": "398:40:3", + "scope": 605, + "src": "398:40:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3855,10 +3855,10 @@ "typeString": "string" }, "typeName": { - "id": 357, + "id": 381, "name": "string", "nodeType": "ElementaryTypeName", - "src": "398:6:3", + "src": "398:6:4", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -3867,14 +3867,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 358, + "id": 382, "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", @@ -3886,11 +3886,11 @@ }, { "constant": false, - "id": 363, + "id": 387, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 581, - "src": "536:46:3", + "scope": 605, + "src": "536:46:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3898,28 +3898,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 362, + "id": 386, "keyType": { - "id": 360, + "id": 384, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "545:7:3", + "src": "545:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "536:28:3", + "src": "536:28:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 361, + "id": 385, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "556:7:3", + "src": "556:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3931,11 +3931,11 @@ }, { "constant": false, - "id": 369, + "id": 393, "name": "isApproved", "nodeType": "VariableDeclaration", - "scope": 581, - "src": "770:66:3", + "scope": 605, + "src": "770:66:4", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3943,46 +3943,46 @@ "typeString": "mapping(bytes32 => mapping(address => uint256))" }, "typeName": { - "id": 368, + "id": 392, "keyType": { - "id": 364, + "id": 388, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "779:7:3", + "src": "779:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "770:48:3", + "src": "770:48:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(bytes32 => mapping(address => uint256))" }, "valueType": { - "id": 367, + "id": 391, "keyType": { - "id": 365, + "id": 389, "name": "address", "nodeType": "ElementaryTypeName", - "src": "798:7:3", + "src": "798:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "790:27:3", + "src": "790:27:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 366, + "id": 390, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "809:7:3", + "src": "809:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3995,9 +3995,9 @@ }, { "body": { - "id": 420, + "id": 444, "nodeType": "Block", - "src": "1457:447:3", + "src": "1457:447:4", "statements": [ { "expression": { @@ -4009,7 +4009,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 388, + "id": 412, "isConstant": false, "isLValue": false, "isPure": false, @@ -4018,34 +4018,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 383, + "id": 407, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "1545:6:3", + "referencedDeclaration": 1117, + "src": "1545:6:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 386, + "id": 410, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 384, + "id": 408, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1773, - "src": "1552:3:3", + "referencedDeclaration": 2659, + "src": "1552:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 385, + "id": 409, "isConstant": false, "isLValue": false, "isPure": false, @@ -4053,7 +4053,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1552:10:3", + "src": "1552:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4064,7 +4064,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1545:18:3", + "src": "1545:18:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4075,14 +4075,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 387, + "id": 411, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1567:1:3", + "src": "1567:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4090,7 +4090,7 @@ }, "value": "0" }, - "src": "1545:23:3", + "src": "1545:23:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4099,14 +4099,14 @@ { "argumentTypes": null, "hexValue": "53656e646572206973206e6f7420616e206f776e6572", - "id": 389, + "id": 413, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1570:24:3", + "src": "1570:24:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b22a5f47ffb62866097c90f90b5b53f76973769c84a10c62e12a07eb2ba1ef4a", @@ -4126,21 +4126,21 @@ "typeString": "literal_string \"Sender is not an owner\"" } ], - "id": 382, + "id": 406, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1537:7:3", + "referencedDeclaration": 2663, + "src": "1537:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 390, + "id": 414, "isConstant": false, "isLValue": false, "isPure": false, @@ -4148,28 +4148,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1537:58:3", + "src": "1537:58:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 391, + "id": 415, "nodeType": "ExpressionStatement", - "src": "1537:58:3" + "src": "1537:58:4" }, { "assignments": [ - 393 + 417 ], "declarations": [ { "constant": false, - "id": 393, + "id": 417, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 421, - "src": "1605:23:3", + "scope": 445, + "src": "1605:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4177,10 +4177,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 392, + "id": 416, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1605:7:3", + "src": "1605:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4190,18 +4190,18 @@ "visibility": "internal" } ], - "id": 401, + "id": 425, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 395, + "id": 419, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 371, - "src": "1650:2:3", + "referencedDeclaration": 395, + "src": "1650:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4209,12 +4209,12 @@ }, { "argumentTypes": null, - "id": 396, + "id": 420, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 373, - "src": "1654:5:3", + "referencedDeclaration": 397, + "src": "1654:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4222,12 +4222,12 @@ }, { "argumentTypes": null, - "id": 397, + "id": 421, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 375, - "src": "1661:4:3", + "referencedDeclaration": 399, + "src": "1661:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -4235,25 +4235,25 @@ }, { "argumentTypes": null, - "id": 398, + "id": 422, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 377, - "src": "1667:9:3", + "referencedDeclaration": 401, + "src": "1667:9:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 399, + "id": 423, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 379, - "src": "1678:5:3", + "referencedDeclaration": 403, + "src": "1678:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4275,7 +4275,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -4283,18 +4283,18 @@ "typeString": "uint256" } ], - "id": 394, + "id": 418, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "1631:18:3", + "referencedDeclaration": 604, + "src": "1631: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": 400, + "id": 424, "isConstant": false, "isLValue": false, "isPure": false, @@ -4302,14 +4302,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1631:53:3", + "src": "1631:53:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "1605:79:3" + "src": "1605:79:4" }, { "expression": { @@ -4321,7 +4321,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 407, + "id": 431, "isConstant": false, "isLValue": false, "isPure": false, @@ -4330,26 +4330,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 403, + "id": 427, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 363, - "src": "1774:10:3", + "referencedDeclaration": 387, + "src": "1774:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 405, + "id": 429, "indexExpression": { "argumentTypes": null, - "id": 404, + "id": 428, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "1785:15:3", + "referencedDeclaration": 417, + "src": "1785:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4360,7 +4360,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1774:27:3", + "src": "1774:27:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4371,14 +4371,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 406, + "id": 430, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1805:1:3", + "src": "1805:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4386,7 +4386,7 @@ }, "value": "0" }, - "src": "1774:32:3", + "src": "1774:32:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4395,14 +4395,14 @@ { "argumentTypes": null, "hexValue": "53616665207472616e73616374696f6e20616c7265616479206578656375746564", - "id": 408, + "id": 432, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1808:35:3", + "src": "1808:35:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", @@ -4422,21 +4422,21 @@ "typeString": "literal_string \"Safe transaction already executed\"" } ], - "id": 402, + "id": 426, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1766:7:3", + "referencedDeclaration": 2663, + "src": "1766:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 409, + "id": 433, "isConstant": false, "isLValue": false, "isPure": false, @@ -4444,20 +4444,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1766:78:3", + "src": "1766:78:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 410, + "id": 434, "nodeType": "ExpressionStatement", - "src": "1766:78:3" + "src": "1766:78:4" }, { "expression": { "argumentTypes": null, - "id": 418, + "id": 442, "isConstant": false, "isLValue": false, "isPure": false, @@ -4468,26 +4468,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 411, + "id": 435, "name": "isApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, - "src": "1854:10:3", + "referencedDeclaration": 393, + "src": "1854:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(bytes32 => mapping(address => uint256))" } }, - "id": 415, + "id": 439, "indexExpression": { "argumentTypes": null, - "id": 412, + "id": 436, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 393, - "src": "1865:15:3", + "referencedDeclaration": 417, + "src": "1865:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4498,29 +4498,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1854:27:3", + "src": "1854:27:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 416, + "id": 440, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 413, + "id": 437, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1773, - "src": "1882:3:3", + "referencedDeclaration": 2659, + "src": "1882:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 414, + "id": 438, "isConstant": false, "isLValue": false, "isPure": false, @@ -4528,7 +4528,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1882:10:3", + "src": "1882:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4539,7 +4539,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1854:39:3", + "src": "1854:39:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4550,14 +4550,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 417, + "id": 441, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1896:1:3", + "src": "1896:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -4565,20 +4565,20 @@ }, "value": "1" }, - "src": "1854:43:3", + "src": "1854:43:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 419, + "id": 443, "nodeType": "ExpressionStatement", - "src": "1854:43:3" + "src": "1854: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": 421, + "id": 445, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4586,16 +4586,16 @@ "name": "approveTransactionWithParameters", "nodeType": "FunctionDefinition", "parameters": { - "id": 380, + "id": 404, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 371, + "id": 395, "name": "to", "nodeType": "VariableDeclaration", - "scope": 421, - "src": "1317:10:3", + "scope": 445, + "src": "1317:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4603,10 +4603,10 @@ "typeString": "address" }, "typeName": { - "id": 370, + "id": 394, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1317:7:3", + "src": "1317:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4617,11 +4617,11 @@ }, { "constant": false, - "id": 373, + "id": 397, "name": "value", "nodeType": "VariableDeclaration", - "scope": 421, - "src": "1338:13:3", + "scope": 445, + "src": "1338:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4629,10 +4629,10 @@ "typeString": "uint256" }, "typeName": { - "id": 372, + "id": 396, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1338:7:3", + "src": "1338:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4643,11 +4643,11 @@ }, { "constant": false, - "id": 375, + "id": 399, "name": "data", "nodeType": "VariableDeclaration", - "scope": 421, - "src": "1362:10:3", + "scope": 445, + "src": "1362:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4655,10 +4655,10 @@ "typeString": "bytes" }, "typeName": { - "id": 374, + "id": 398, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1362:5:3", + "src": "1362:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4669,26 +4669,26 @@ }, { "constant": false, - "id": 377, + "id": 401, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 421, - "src": "1383:24:3", + "scope": 445, + "src": "1383: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": 376, + "id": 400, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "1383:14:3", + "referencedDeclaration": 29, + "src": "1383:14:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -4697,11 +4697,11 @@ }, { "constant": false, - "id": 379, + "id": 403, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 421, - "src": "1418:13:3", + "scope": 445, + "src": "1418:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4709,10 +4709,10 @@ "typeString": "uint256" }, "typeName": { - "id": 378, + "id": 402, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1418:7:3", + "src": "1418:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4722,39 +4722,39 @@ "visibility": "internal" } ], - "src": "1307:130:3" + "src": "1307:130:4" }, "payable": false, "returnParameters": { - "id": 381, + "id": 405, "nodeType": "ParameterList", "parameters": [], - "src": "1457:0:3" + "src": "1457:0:4" }, - "scope": 581, - "src": "1266:638:3", + "scope": 605, + "src": "1266:638:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 475, + "id": 499, "nodeType": "Block", - "src": "2530:434:3", + "src": "2530:434:4", "statements": [ { "assignments": [ - 435 + 459 ], "declarations": [ { "constant": false, - "id": 435, + "id": 459, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "2540:23:3", + "scope": 500, + "src": "2540:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4762,10 +4762,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 434, + "id": 458, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2540:7:3", + "src": "2540:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4775,18 +4775,18 @@ "visibility": "internal" } ], - "id": 443, + "id": 467, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 437, + "id": 461, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 423, - "src": "2585:2:3", + "referencedDeclaration": 447, + "src": "2585:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4794,12 +4794,12 @@ }, { "argumentTypes": null, - "id": 438, + "id": 462, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 425, - "src": "2589:5:3", + "referencedDeclaration": 449, + "src": "2589:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4807,12 +4807,12 @@ }, { "argumentTypes": null, - "id": 439, + "id": 463, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "2596:4:3", + "referencedDeclaration": 451, + "src": "2596:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -4820,25 +4820,25 @@ }, { "argumentTypes": null, - "id": 440, + "id": 464, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 429, - "src": "2602:9:3", + "referencedDeclaration": 453, + "src": "2602:9:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 441, + "id": 465, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 431, - "src": "2613:5:3", + "referencedDeclaration": 455, + "src": "2613:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4860,7 +4860,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -4868,18 +4868,18 @@ "typeString": "uint256" } ], - "id": 436, + "id": 460, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 580, - "src": "2566:18:3", + "referencedDeclaration": 604, + "src": "2566: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": 442, + "id": 466, "isConstant": false, "isLValue": false, "isPure": false, @@ -4887,14 +4887,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2566:53:3", + "src": "2566:53:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2540:79:3" + "src": "2540:79:4" }, { "expression": { @@ -4906,7 +4906,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 449, + "id": 473, "isConstant": false, "isLValue": false, "isPure": false, @@ -4915,26 +4915,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 445, + "id": 469, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 363, - "src": "2637:10:3", + "referencedDeclaration": 387, + "src": "2637:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 447, + "id": 471, "indexExpression": { "argumentTypes": null, - "id": 446, + "id": 470, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 435, - "src": "2648:15:3", + "referencedDeclaration": 459, + "src": "2648:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4945,7 +4945,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2637:27:3", + "src": "2637:27:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4956,14 +4956,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 448, + "id": 472, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2668:1:3", + "src": "2668:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4971,7 +4971,7 @@ }, "value": "0" }, - "src": "2637:32:3", + "src": "2637:32:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4980,14 +4980,14 @@ { "argumentTypes": null, "hexValue": "53616665207472616e73616374696f6e20616c7265616479206578656375746564", - "id": 450, + "id": 474, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2671:35:3", + "src": "2671:35:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_78cc689035dd21cb903fbad8327952ddf83800cf1115919ff1ad2be36eed70db", @@ -5007,21 +5007,21 @@ "typeString": "literal_string \"Safe transaction already executed\"" } ], - "id": 444, + "id": 468, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2629:7:3", + "referencedDeclaration": 2663, + "src": "2629:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 451, + "id": 475, "isConstant": false, "isLValue": false, "isPure": false, @@ -5029,15 +5029,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2629:78:3", + "src": "2629:78:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 452, + "id": 476, "nodeType": "ExpressionStatement", - "src": "2629:78:3" + "src": "2629:78:4" }, { "expression": { @@ -5045,12 +5045,12 @@ "arguments": [ { "argumentTypes": null, - "id": 454, + "id": 478, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 435, - "src": "2744:15:3", + "referencedDeclaration": 459, + "src": "2744:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5064,18 +5064,18 @@ "typeString": "bytes32" } ], - "id": 453, + "id": 477, "name": "checkAndClearConfirmations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 546, - "src": "2717:26:3", + "referencedDeclaration": 570, + "src": "2717:26:4", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$__$", "typeString": "function (bytes32)" } }, - "id": 455, + "id": 479, "isConstant": false, "isLValue": false, "isPure": false, @@ -5083,20 +5083,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2717:43:3", + "src": "2717:43:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 456, + "id": 480, "nodeType": "ExpressionStatement", - "src": "2717:43:3" + "src": "2717:43:4" }, { "expression": { "argumentTypes": null, - "id": 461, + "id": 485, "isConstant": false, "isLValue": false, "isPure": false, @@ -5105,26 +5105,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 457, + "id": 481, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 363, - "src": "2823:10:3", + "referencedDeclaration": 387, + "src": "2823:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 459, + "id": 483, "indexExpression": { "argumentTypes": null, - "id": 458, + "id": 482, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 435, - "src": "2834:15:3", + "referencedDeclaration": 459, + "src": "2834:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5135,7 +5135,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2823:27:3", + "src": "2823:27:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5146,14 +5146,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 460, + "id": 484, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2853:1:3", + "src": "2853:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -5161,15 +5161,15 @@ }, "value": "1" }, - "src": "2823:31:3", + "src": "2823:31:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 462, + "id": 486, "nodeType": "ExpressionStatement", - "src": "2823:31:3" + "src": "2823:31:4" }, { "expression": { @@ -5180,12 +5180,12 @@ "arguments": [ { "argumentTypes": null, - "id": 465, + "id": 489, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 423, - "src": "2880:2:3", + "referencedDeclaration": 447, + "src": "2880:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5193,12 +5193,12 @@ }, { "argumentTypes": null, - "id": 466, + "id": 490, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 425, - "src": "2884:5:3", + "referencedDeclaration": 449, + "src": "2884:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5206,12 +5206,12 @@ }, { "argumentTypes": null, - "id": 467, + "id": 491, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 427, - "src": "2891:4:3", + "referencedDeclaration": 451, + "src": "2891:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5219,14 +5219,14 @@ }, { "argumentTypes": null, - "id": 468, + "id": 492, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 429, - "src": "2897:9:3", + "referencedDeclaration": 453, + "src": "2897:9:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -5235,18 +5235,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 469, + "id": 493, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "2908:7:3", + "referencedDeclaration": 2652, + "src": "2908:7:4", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 470, + "id": 494, "isConstant": false, "isLValue": false, "isPure": false, @@ -5254,7 +5254,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2908:9:3", + "src": "2908:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5276,7 +5276,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -5284,18 +5284,18 @@ "typeString": "uint256" } ], - "id": 464, + "id": 488, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "2872:7:3", + "referencedDeclaration": 992, + "src": "2872: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": 471, + "id": 495, "isConstant": false, "isLValue": false, "isPure": false, @@ -5303,7 +5303,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2872:46:3", + "src": "2872:46:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5312,14 +5312,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f7420657865637574652073616665207472616e73616374696f6e", - "id": 472, + "id": 496, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2920:36:3", + "src": "2920:36:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_d12b254798790cac45e0b54201b0ecf8f3257f9e4c1cfc4633e272006616c878", @@ -5339,21 +5339,21 @@ "typeString": "literal_string \"Could not execute safe transaction\"" } ], - "id": 463, + "id": 487, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2864:7:3", + "referencedDeclaration": 2663, + "src": "2864:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 473, + "id": 497, "isConstant": false, "isLValue": false, "isPure": false, @@ -5361,20 +5361,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2864:93:3", + "src": "2864:93:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 474, + "id": 498, "nodeType": "ExpressionStatement", - "src": "2864:93:3" + "src": "2864:93:4" } ] }, "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": 476, + "id": 500, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5382,16 +5382,16 @@ "name": "execTransactionIfApproved", "nodeType": "FunctionDefinition", "parameters": { - "id": 432, + "id": 456, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 423, + "id": 447, "name": "to", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "2390:10:3", + "scope": 500, + "src": "2390:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5399,10 +5399,10 @@ "typeString": "address" }, "typeName": { - "id": 422, + "id": 446, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2390:7:3", + "src": "2390:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5413,11 +5413,11 @@ }, { "constant": false, - "id": 425, + "id": 449, "name": "value", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "2411:13:3", + "scope": 500, + "src": "2411:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5425,10 +5425,10 @@ "typeString": "uint256" }, "typeName": { - "id": 424, + "id": 448, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2411:7:3", + "src": "2411:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5439,11 +5439,11 @@ }, { "constant": false, - "id": 427, + "id": 451, "name": "data", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "2435:10:3", + "scope": 500, + "src": "2435:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5451,10 +5451,10 @@ "typeString": "bytes" }, "typeName": { - "id": 426, + "id": 450, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2435:5:3", + "src": "2435:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5465,26 +5465,26 @@ }, { "constant": false, - "id": 429, + "id": 453, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "2456:24:3", + "scope": 500, + "src": "2456: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": 428, + "id": 452, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "2456:14:3", + "referencedDeclaration": 29, + "src": "2456:14:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -5493,11 +5493,11 @@ }, { "constant": false, - "id": 431, + "id": 455, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 476, - "src": "2491:13:3", + "scope": 500, + "src": "2491:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5505,10 +5505,10 @@ "typeString": "uint256" }, "typeName": { - "id": 430, + "id": 454, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2491:7:3", + "src": "2491:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5518,39 +5518,39 @@ "visibility": "internal" } ], - "src": "2380:130:3" + "src": "2380:130:4" }, "payable": false, "returnParameters": { - "id": 433, + "id": 457, "nodeType": "ParameterList", "parameters": [], - "src": "2530:0:3" + "src": "2530:0:4" }, - "scope": 581, - "src": "2346:618:3", + "scope": 605, + "src": "2346:618:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 545, + "id": 569, "nodeType": "Block", - "src": "3052:679:3", + "src": "3052:679:4", "statements": [ { "assignments": [ - 484 + 508 ], "declarations": [ { "constant": false, - "id": 484, + "id": 508, "name": "approvals", "nodeType": "VariableDeclaration", - "scope": 546, - "src": "3062:37:3", + "scope": 570, + "src": "3062:37:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5558,28 +5558,28 @@ "typeString": "mapping(address => uint256)" }, "typeName": { - "id": 483, + "id": 507, "keyType": { - "id": 481, + "id": 505, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3070:7:3", + "src": "3070:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "3062:27:3", + "src": "3062:27:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { - "id": 482, + "id": 506, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3081:7:3", + "src": "3081:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5590,31 +5590,31 @@ "visibility": "internal" } ], - "id": 488, + "id": 512, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 485, + "id": 509, "name": "isApproved", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 369, - "src": "3102:10:3", + "referencedDeclaration": 393, + "src": "3102:10:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_uint256_$_$", "typeString": "mapping(bytes32 => mapping(address => uint256))" } }, - "id": 487, + "id": 511, "indexExpression": { "argumentTypes": null, - "id": 486, + "id": 510, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "3113:15:3", + "referencedDeclaration": 502, + "src": "3113:15:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5625,27 +5625,27 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3102:27:3", + "src": "3102:27:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "nodeType": "VariableDeclarationStatement", - "src": "3062:67:3" + "src": "3062:67:4" }, { "assignments": [ - 490 + 514 ], "declarations": [ { "constant": false, - "id": 490, + "id": 514, "name": "confirmations", "nodeType": "VariableDeclaration", - "scope": 546, - "src": "3139:21:3", + "scope": 570, + "src": "3139:21:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5653,10 +5653,10 @@ "typeString": "uint256" }, "typeName": { - "id": 489, + "id": 513, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3139:7:3", + "src": "3139:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5666,18 +5666,18 @@ "visibility": "internal" } ], - "id": 492, + "id": 516, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 491, + "id": 515, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3163:1:3", + "src": "3163:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5686,20 +5686,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3139:25:3" + "src": "3139:25:4" }, { "assignments": [ - 494 + 518 ], "declarations": [ { "constant": false, - "id": 494, + "id": 518, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 546, - "src": "3216:20:3", + "scope": 570, + "src": "3216:20:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5707,10 +5707,10 @@ "typeString": "address" }, "typeName": { - "id": 493, + "id": 517, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3216:7:3", + "src": "3216:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5720,31 +5720,31 @@ "visibility": "internal" } ], - "id": 498, + "id": 522, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 495, + "id": 519, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "3239:6:3", + "referencedDeclaration": 1117, + "src": "3239:6:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 497, + "id": 521, "indexExpression": { "argumentTypes": null, - "id": 496, + "id": 520, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "3246:15:3", + "referencedDeclaration": 1113, + "src": "3246:15:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5755,33 +5755,33 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3239:23:3", + "src": "3239:23:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "3216:46:3" + "src": "3216:46:4" }, { "body": { - "id": 536, + "id": 560, "nodeType": "Block", - "src": "3312:340:3", + "src": "3312:340:4", "statements": [ { "assignments": [ - 503 + 527 ], "declarations": [ { "constant": false, - "id": 503, + "id": 527, "name": "ownerConfirmed", "nodeType": "VariableDeclaration", - "scope": 546, - "src": "3326:19:3", + "scope": 570, + "src": "3326:19:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5789,10 +5789,10 @@ "typeString": "bool" }, "typeName": { - "id": 502, + "id": 526, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3326:4:3", + "src": "3326:4:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5802,14 +5802,14 @@ "visibility": "internal" } ], - "id": 509, + "id": 533, "initialValue": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 508, + "id": 532, "isConstant": false, "isLValue": false, "isPure": false, @@ -5818,26 +5818,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 504, + "id": 528, "name": "approvals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "3348:9:3", + "referencedDeclaration": 508, + "src": "3348:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 506, + "id": 530, "indexExpression": { "argumentTypes": null, - "id": 505, + "id": 529, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "3358:12:3", + "referencedDeclaration": 518, + "src": "3358:12:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5848,7 +5848,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3348:23:3", + "src": "3348:23:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5859,14 +5859,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 507, + "id": 531, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3375:1:3", + "src": "3375:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5874,14 +5874,14 @@ }, "value": "0" }, - "src": "3348:28:3", + "src": "3348:28:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "VariableDeclarationStatement", - "src": "3326:50:3" + "src": "3326:50:4" }, { "condition": { @@ -5890,7 +5890,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 515, + "id": 539, "isConstant": false, "isLValue": false, "isPure": false, @@ -5901,19 +5901,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 513, + "id": 537, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 510, + "id": 534, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "3393:12:3", + "referencedDeclaration": 518, + "src": "3393:12:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5925,18 +5925,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 511, + "id": 535, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1773, - "src": "3409:3:3", + "referencedDeclaration": 2659, + "src": "3409:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 512, + "id": 536, "isConstant": false, "isLValue": false, "isPure": false, @@ -5944,13 +5944,13 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3409:10:3", + "src": "3409:10:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3393:26:3", + "src": "3393:26:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5960,59 +5960,59 @@ "operator": "||", "rightExpression": { "argumentTypes": null, - "id": 514, + "id": 538, "name": "ownerConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "3423:14:3", + "referencedDeclaration": 527, + "src": "3423:14:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3393:44:3", + "src": "3393:44:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 529, + "id": 553, "nodeType": "IfStatement", - "src": "3390:203:3", + "src": "3390:203:4", "trueBody": { - "id": 528, + "id": 552, "nodeType": "Block", - "src": "3439:154:3", + "src": "3439:154:4", "statements": [ { "condition": { "argumentTypes": null, - "id": 516, + "id": 540, "name": "ownerConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "3461:14:3", + "referencedDeclaration": 527, + "src": "3461:14:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 524, + "id": 548, "nodeType": "IfStatement", - "src": "3457:88:3", + "src": "3457:88:4", "trueBody": { - "id": 523, + "id": 547, "nodeType": "Block", - "src": "3477:68:3", + "src": "3477:68:4", "statements": [ { "expression": { "argumentTypes": null, - "id": 521, + "id": 545, "isConstant": false, "isLValue": false, "isPure": false, @@ -6021,26 +6021,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 517, + "id": 541, "name": "approvals", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 484, - "src": "3499:9:3", + "referencedDeclaration": 508, + "src": "3499:9:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, - "id": 519, + "id": 543, "indexExpression": { "argumentTypes": null, - "id": 518, + "id": 542, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "3509:12:3", + "referencedDeclaration": 518, + "src": "3509:12:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6051,7 +6051,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3499:23:3", + "src": "3499:23:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6062,14 +6062,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 520, + "id": 544, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3525:1:3", + "src": "3525:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6077,15 +6077,15 @@ }, "value": "0" }, - "src": "3499:27:3", + "src": "3499:27:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 522, + "id": 546, "nodeType": "ExpressionStatement", - "src": "3499:27:3" + "src": "3499:27:4" } ] } @@ -6093,7 +6093,7 @@ { "expression": { "argumentTypes": null, - "id": 526, + "id": 550, "isConstant": false, "isLValue": false, "isPure": false, @@ -6101,15 +6101,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3562:16:3", + "src": "3562:16:4", "subExpression": { "argumentTypes": null, - "id": 525, + "id": 549, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 490, - "src": "3562:13:3", + "referencedDeclaration": 514, + "src": "3562:13:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6120,9 +6120,9 @@ "typeString": "uint256" } }, - "id": 527, + "id": 551, "nodeType": "ExpressionStatement", - "src": "3562:16:3" + "src": "3562:16:4" } ] } @@ -6130,19 +6130,19 @@ { "expression": { "argumentTypes": null, - "id": 534, + "id": 558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 530, + "id": 554, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "3606:12:3", + "referencedDeclaration": 518, + "src": "3606:12:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6154,26 +6154,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 531, + "id": 555, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "3621:6:3", + "referencedDeclaration": 1117, + "src": "3621:6:4", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 533, + "id": 557, "indexExpression": { "argumentTypes": null, - "id": 532, + "id": 556, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "3628:12:3", + "referencedDeclaration": 518, + "src": "3628:12:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6184,21 +6184,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3621:20:3", + "src": "3621:20:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3606:35:3", + "src": "3606:35:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 535, + "id": 559, "nodeType": "ExpressionStatement", - "src": "3606:35:3" + "src": "3606:35:4" } ] }, @@ -6208,19 +6208,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 501, + "id": 525, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 499, + "id": 523, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 494, - "src": "3279:12:3", + "referencedDeclaration": 518, + "src": "3279:12:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6230,26 +6230,26 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 500, + "id": 524, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "3295:15:3", + "referencedDeclaration": 1113, + "src": "3295:15:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3279:31:3", + "src": "3279:31:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 537, + "id": 561, "nodeType": "WhileStatement", - "src": "3272:380:3" + "src": "3272:380:4" }, { "expression": { @@ -6261,19 +6261,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 541, + "id": 565, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 539, + "id": 563, "name": "confirmations", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 490, - "src": "3669:13:3", + "referencedDeclaration": 514, + "src": "3669:13:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6283,18 +6283,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 540, + "id": 564, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "3686:9:3", + "referencedDeclaration": 1121, + "src": "3686:9:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3669:26:3", + "src": "3669:26:4", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6303,14 +6303,14 @@ { "argumentTypes": null, "hexValue": "4e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 542, + "id": 566, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3697:26:3", + "src": "3697:26:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b345da2aaad39251196728cc7926bed93e890843c2a47c2cdd1122427d828094", @@ -6330,21 +6330,21 @@ "typeString": "literal_string \"Not enough confirmations\"" } ], - "id": 538, + "id": 562, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "3661:7:3", + "referencedDeclaration": 2663, + "src": "3661:7:4", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 543, + "id": 567, "isConstant": false, "isLValue": false, "isPure": false, @@ -6352,20 +6352,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3661:63:3", + "src": "3661:63:4", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 544, + "id": 568, "nodeType": "ExpressionStatement", - "src": "3661:63:3" + "src": "3661:63:4" } ] }, "documentation": null, - "id": 546, + "id": 570, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6373,16 +6373,16 @@ "name": "checkAndClearConfirmations", "nodeType": "FunctionDefinition", "parameters": { - "id": 479, + "id": 503, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 478, + "id": 502, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 546, - "src": "3006:23:3", + "scope": 570, + "src": "3006:23:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6390,10 +6390,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 477, + "id": 501, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3006:7:3", + "src": "3006:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6403,26 +6403,26 @@ "visibility": "internal" } ], - "src": "3005:25:3" + "src": "3005:25:4" }, "payable": false, "returnParameters": { - "id": 480, + "id": 504, "nodeType": "ParameterList", "parameters": [], - "src": "3052:0:3" + "src": "3052:0:4" }, - "scope": 581, - "src": "2970:761:3", + "scope": 605, + "src": "2970:761:4", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 579, + "id": 603, "nodeType": "Block", - "src": "4225:113:3", + "src": "4225:113:4", "statements": [ { "expression": { @@ -6437,14 +6437,14 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 565, + "id": 589, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4274:4:3", + "src": "4274:4:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", @@ -6460,20 +6460,20 @@ "typeString": "int_const 25" } ], - "id": 564, + "id": 588, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4269:4:3", + "src": "4269:4:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 566, + "id": 590, "isConstant": false, "isLValue": false, "isPure": true, @@ -6481,7 +6481,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4269:10:3", + "src": "4269:10:4", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -6493,14 +6493,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 568, + "id": 592, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4286:1:3", + "src": "4286:1:4", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6516,20 +6516,20 @@ "typeString": "int_const 0" } ], - "id": 567, + "id": 591, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4281:4:3", + "src": "4281:4:4", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 569, + "id": 593, "isConstant": false, "isLValue": false, "isPure": true, @@ -6537,7 +6537,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4281:7:3", + "src": "4281:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -6545,25 +6545,25 @@ }, { "argumentTypes": null, - "id": 570, + "id": 594, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1806, - "src": "4290:4:3", + "referencedDeclaration": 2696, + "src": "4290:4:4", "typeDescriptions": { - "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$581", + "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$605", "typeString": "contract GnosisSafeTeamEdition" } }, { "argumentTypes": null, - "id": 571, + "id": 595, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 548, - "src": "4296:2:3", + "referencedDeclaration": 572, + "src": "4296:2:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6571,12 +6571,12 @@ }, { "argumentTypes": null, - "id": 572, + "id": 596, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 550, - "src": "4300:5:3", + "referencedDeclaration": 574, + "src": "4300:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6584,12 +6584,12 @@ }, { "argumentTypes": null, - "id": 573, + "id": 597, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 552, - "src": "4307:4:3", + "referencedDeclaration": 576, + "src": "4307:4:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6597,25 +6597,25 @@ }, { "argumentTypes": null, - "id": 574, + "id": 598, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "4313:9:3", + "referencedDeclaration": 578, + "src": "4313:9:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 575, + "id": 599, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 556, - "src": "4324:5:3", + "referencedDeclaration": 580, + "src": "4324:5:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6633,7 +6633,7 @@ "typeString": "bytes1" }, { - "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$581", + "typeIdentifier": "t_contract$_GnosisSafeTeamEdition_$605", "typeString": "contract GnosisSafeTeamEdition" }, { @@ -6649,7 +6649,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -6659,18 +6659,18 @@ ], "expression": { "argumentTypes": null, - "id": 562, + "id": 586, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1760, - "src": "4252:3:3", + "referencedDeclaration": 2646, + "src": "4252:3:4", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 563, + "id": 587, "isConstant": false, "isLValue": false, "isPure": true, @@ -6678,13 +6678,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "4252:16:3", + "src": "4252:16:4", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 576, + "id": 600, "isConstant": false, "isLValue": false, "isPure": false, @@ -6692,7 +6692,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4252:78:3", + "src": "4252:78:4", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6706,18 +6706,18 @@ "typeString": "bytes memory" } ], - "id": 561, + "id": 585, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "4242:9:3", + "referencedDeclaration": 2653, + "src": "4242:9:4", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 577, + "id": 601, "isConstant": false, "isLValue": false, "isPure": false, @@ -6725,21 +6725,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4242:89:3", + "src": "4242:89:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 560, - "id": 578, + "functionReturnParameters": 584, + "id": 602, "nodeType": "Return", - "src": "4235:96:3" + "src": "4235: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": 580, + "id": 604, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -6747,16 +6747,16 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 557, + "id": 581, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 548, + "id": 572, "name": "to", "nodeType": "VariableDeclaration", - "scope": 580, - "src": "4046:10:3", + "scope": 604, + "src": "4046:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6764,10 +6764,10 @@ "typeString": "address" }, "typeName": { - "id": 547, + "id": 571, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4046:7:3", + "src": "4046:7:4", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6778,11 +6778,11 @@ }, { "constant": false, - "id": 550, + "id": 574, "name": "value", "nodeType": "VariableDeclaration", - "scope": 580, - "src": "4067:13:3", + "scope": 604, + "src": "4067:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6790,10 +6790,10 @@ "typeString": "uint256" }, "typeName": { - "id": 549, + "id": 573, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4067:7:3", + "src": "4067:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6804,11 +6804,11 @@ }, { "constant": false, - "id": 552, + "id": 576, "name": "data", "nodeType": "VariableDeclaration", - "scope": 580, - "src": "4091:10:3", + "scope": 604, + "src": "4091:10:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6816,10 +6816,10 @@ "typeString": "bytes" }, "typeName": { - "id": 551, + "id": 575, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4091:5:3", + "src": "4091:5:4", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6830,26 +6830,26 @@ }, { "constant": false, - "id": 554, + "id": 578, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 580, - "src": "4112:24:3", + "scope": 604, + "src": "4112: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": 553, + "id": 577, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "4112:14:3", + "referencedDeclaration": 29, + "src": "4112:14:4", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -6858,11 +6858,11 @@ }, { "constant": false, - "id": 556, + "id": 580, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 580, - "src": "4147:13:3", + "scope": 604, + "src": "4147:13:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6870,10 +6870,10 @@ "typeString": "uint256" }, "typeName": { - "id": 555, + "id": 579, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4147:7:3", + "src": "4147:7:4", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6883,20 +6883,20 @@ "visibility": "internal" } ], - "src": "4036:130:3" + "src": "4036:130:4" }, "payable": false, "returnParameters": { - "id": 560, + "id": 584, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 559, + "id": 583, "name": "", "nodeType": "VariableDeclaration", - "scope": 580, - "src": "4212:7:3", + "scope": 604, + "src": "4212:7:4", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6904,10 +6904,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 558, + "id": 582, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4212:7:3", + "src": "4212:7:4", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6917,105 +6917,33 @@ "visibility": "internal" } ], - "src": "4211:9:3" + "src": "4211:9:4" }, - "scope": 581, - "src": "4009:329:3", + "scope": 605, + "src": "4009:329:4", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 582, - "src": "272:4068:3" + "scope": 606, + "src": "272:4068:4" } ], - "src": "0:4341:3" + "src": "0:4341:4" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { - "4": { + "1530197641790": { "events": {}, "links": {}, - "address": "0xb3525a082c7c49ae8f9f94b69cc08998eecca073", - "transactionHash": "0x11f3dc7f2d63dce24f54b14dbc0dccb81b589ee711616ba54501a5e36cd4e401" - }, - "1529327661534": { - "events": {}, - "links": {}, - "address": "0xd9e50ec7f35dbf414b9831d352f0b64c63cb3ae5", - "transactionHash": "0xe92cb4d126ad63d0d96c1cad668d14eb7f693b6b754488c898cf294c792af802" - }, - "1529333415702": { - "events": {}, - "links": {}, - "address": "0xd748a53c2061521b6b3b5b0d40b91461591b0dc7", - "transactionHash": "0xe82ec5350517d60310a99990cfa668570eb06a1d69fa9f4b884eab0d5caa1ad1" - }, - "1529652204341": { - "events": {}, - "links": {}, - "address": "0xffc8d32e746202b3676a206fa5296edd43cb2cd3", - "transactionHash": "0x9ae1de406cd8d0ca8fe85c77d43349ae77fd4d9691defa15cd9380f4c49e3a98" - }, - "1529931780812": { - "events": {}, - "links": {}, - "address": "0x5a5784f8c940b5c3159b00fe74bb50f8a370e0b7", - "transactionHash": "0x9ae1de406cd8d0ca8fe85c77d43349ae77fd4d9691defa15cd9380f4c49e3a98" - }, - "1529933005377": { - "events": {}, - "links": {}, - "address": "0x576b373439566dbb212e0868842fb294f3cb8a7b", - "transactionHash": "0x9ae1de406cd8d0ca8fe85c77d43349ae77fd4d9691defa15cd9380f4c49e3a98" - }, - "1529934931891": { - "events": {}, - "links": {}, - "address": "0x02fed3c1a77ba8435cbd43c7e720f1b1af6bf530", - "transactionHash": "0x9ae1de406cd8d0ca8fe85c77d43349ae77fd4d9691defa15cd9380f4c49e3a98" - }, - "1529935355957": { - "events": {}, - "links": {}, - "address": "0x5d97784424603749adfbbae8ea968c227dd3bda8", - "transactionHash": "0x9ae1de406cd8d0ca8fe85c77d43349ae77fd4d9691defa15cd9380f4c49e3a98" - }, - "1529936204222": { - "events": {}, - "links": {}, - "address": "0x37a773d883abef84dd34df5f248e3648599a5f91", - "transactionHash": "0x9ae1de406cd8d0ca8fe85c77d43349ae77fd4d9691defa15cd9380f4c49e3a98" - }, - "1529937280871": { - "events": {}, - "links": {}, - "address": "0x8c9831d868152489d38b48221892ed924af5c125", - "transactionHash": "0x9ae1de406cd8d0ca8fe85c77d43349ae77fd4d9691defa15cd9380f4c49e3a98" - }, - "1529937637076": { - "events": {}, - "links": {}, - "address": "0x65a1efd34517bc174449736680af6ec6d020e3d5", - "transactionHash": "0x9ae1de406cd8d0ca8fe85c77d43349ae77fd4d9691defa15cd9380f4c49e3a98" - }, - "1529937890676": { - "events": {}, - "links": {}, - "address": "0xca959d6e02640a62bedd0abd5193c4755560acfa", - "transactionHash": "0x9ae1de406cd8d0ca8fe85c77d43349ae77fd4d9691defa15cd9380f4c49e3a98" - }, - "1530013596495": { - "events": {}, - "links": {}, - "address": "0xd78657da6ed5f47cf7eae2e3f6c89d0407812454", - "transactionHash": "0x9ae1de406cd8d0ca8fe85c77d43349ae77fd4d9691defa15cd9380f4c49e3a98" + "address": "0x2956d5be1486db26b7bd95fae023d4aed93d78c3", + "transactionHash": "0x74e2bb6daf2d8a3dfe0112e3ff41ef600fd206accce2dbf8d3836874ac1868ce" } }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-26T11:47:04.132Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:58.265Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/MasterCopy.json b/safe-contracts/build/contracts/MasterCopy.json index cebf14d0..655baa9f 100644 --- a/safe-contracts/build/contracts/MasterCopy.json +++ b/safe-contracts/build/contracts/MasterCopy.json @@ -18,38 +18,38 @@ ], "bytecode": "0x608060405234801561001057600080fd5b50610276806100206000396000f300608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820243ca7a44eb0464a47c14309cc3a29e407df6e966674981a787df22c0d9280220029", "deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680637de7edef14610046575b600080fd5b34801561005257600080fd5b50610087600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610089565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a72305820243ca7a44eb0464a47c14309cc3a29e407df6e966674981a787df22c0d9280220029", - "sourceMap": "203:673:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:673:4;;;;;;;", - "deployedSourceMap": "203:673:4:-;;;;;;;;;;;;;;;;;;;;;;;;626:248;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:4;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o", + "sourceMap": "203:673:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;203:673:5;;;;;;;", + "deployedSourceMap": "203:673:5:-;;;;;;;;;;;;;;;;;;;;;;;;626:248;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::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, \"Invalid master copy address provided\");\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": [ - 608 + 632 ] }, - "id": 609, + "id": 633, "nodeType": "SourceUnit", "nodes": [ { - "id": 583, + "id": 607, "literals": [ "solidity", "0.4", ".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": 584, + "id": 608, "nodeType": "ImportDirective", - "scope": 609, - "sourceUnit": 1450, - "src": "24:30:4", + "scope": 633, + "sourceUnit": 1689, + "src": "24:30:5", "symbolAliases": [], "unitAlias": "" }, @@ -59,42 +59,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 585, + "id": 609, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1449, - "src": "226:14:4", + "referencedDeclaration": 1688, + "src": "226:14:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1449", + "typeIdentifier": "t_contract$_SelfAuthorized_$1688", "typeString": "contract SelfAuthorized" } }, - "id": 586, + "id": 610, "nodeType": "InheritanceSpecifier", - "src": "226:14:4" + "src": "226:14:5" } ], "contractDependencies": [ - 1449 + 1688 ], "contractKind": "contract", "documentation": "@title MasterCopy - Base for master copy contracts (should always be first super contract)\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 608, + "id": 632, "linearizedBaseContracts": [ - 608, - 1449 + 632, + 1688 ], "name": "MasterCopy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 588, + "id": 612, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 608, - "src": "465:18:4", + "scope": 632, + "src": "465:18:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -102,10 +102,10 @@ "typeString": "address" }, "typeName": { - "id": 587, + "id": 611, "name": "address", "nodeType": "ElementaryTypeName", - "src": "465:7:4", + "src": "465:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -116,9 +116,9 @@ }, { "body": { - "id": 606, + "id": 630, "nodeType": "Block", - "src": "711:163:4", + "src": "711:163:5", "statements": [ { "expression": { @@ -130,19 +130,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 598, + "id": 622, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 596, + "id": 620, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, - "src": "776:11:4", + "referencedDeclaration": 614, + "src": "776:11:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -153,14 +153,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 597, + "id": 621, "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" @@ -177,14 +177,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 599, + "id": 623, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "794:38:4", + "src": "794:38:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", @@ -204,21 +204,21 @@ "typeString": "literal_string \"Invalid master copy address provided\"" } ], - "id": 595, + "id": 619, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "768:7:4", + "referencedDeclaration": 2663, + "src": "768:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 600, + "id": 624, "isConstant": false, "isLValue": false, "isPure": false, @@ -226,32 +226,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "768:65:4", + "src": "768:65:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 601, + "id": 625, "nodeType": "ExpressionStatement", - "src": "768:65:4" + "src": "768:65:5" }, { "expression": { "argumentTypes": null, - "id": 604, + "id": 628, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 602, + "id": 626, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "843:10:4", + "referencedDeclaration": 612, + "src": "843:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -261,68 +261,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 603, + "id": 627, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, - "src": "856:11:4", + "referencedDeclaration": 614, + "src": "856:11:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "843:24:4", + "src": "843:24:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 605, + "id": 629, "nodeType": "ExpressionStatement", - "src": "843:24:4" + "src": "843: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": 607, + "id": 631, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 593, + "id": 617, "modifierName": { "argumentTypes": null, - "id": 592, + "id": 616, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "696:10:4", + "referencedDeclaration": 1687, + "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": 591, + "id": 615, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 590, + "id": 614, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 607, - "src": "652:19:4", + "scope": 631, + "src": "652:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -330,10 +330,10 @@ "typeString": "address" }, "typeName": { - "id": 589, + "id": 613, "name": "address", "nodeType": "ElementaryTypeName", - "src": "652:7:4", + "src": "652:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -343,56 +343,56 @@ "visibility": "internal" } ], - "src": "651:21:4" + "src": "651:21:5" }, "payable": false, "returnParameters": { - "id": 594, + "id": 618, "nodeType": "ParameterList", "parameters": [], - "src": "711:0:4" + "src": "711:0:5" }, - "scope": 608, - "src": "626:248:4", + "scope": 632, + "src": "626:248:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 609, - "src": "203:673:4" + "scope": 633, + "src": "203:673:5" } ], - "src": "0:877:4" + "src": "0:877:5" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "exportedSymbols": { "MasterCopy": [ - 608 + 632 ] }, - "id": 609, + "id": 633, "nodeType": "SourceUnit", "nodes": [ { - "id": 583, + "id": 607, "literals": [ "solidity", "0.4", ".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": 584, + "id": 608, "nodeType": "ImportDirective", - "scope": 609, - "sourceUnit": 1450, - "src": "24:30:4", + "scope": 633, + "sourceUnit": 1689, + "src": "24:30:5", "symbolAliases": [], "unitAlias": "" }, @@ -402,42 +402,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 585, + "id": 609, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1449, - "src": "226:14:4", + "referencedDeclaration": 1688, + "src": "226:14:5", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1449", + "typeIdentifier": "t_contract$_SelfAuthorized_$1688", "typeString": "contract SelfAuthorized" } }, - "id": 586, + "id": 610, "nodeType": "InheritanceSpecifier", - "src": "226:14:4" + "src": "226:14:5" } ], "contractDependencies": [ - 1449 + 1688 ], "contractKind": "contract", "documentation": "@title MasterCopy - Base for master copy contracts (should always be first super contract)\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 608, + "id": 632, "linearizedBaseContracts": [ - 608, - 1449 + 632, + 1688 ], "name": "MasterCopy", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 588, + "id": 612, "name": "masterCopy", "nodeType": "VariableDeclaration", - "scope": 608, - "src": "465:18:4", + "scope": 632, + "src": "465:18:5", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -445,10 +445,10 @@ "typeString": "address" }, "typeName": { - "id": 587, + "id": 611, "name": "address", "nodeType": "ElementaryTypeName", - "src": "465:7:4", + "src": "465:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -459,9 +459,9 @@ }, { "body": { - "id": 606, + "id": 630, "nodeType": "Block", - "src": "711:163:4", + "src": "711:163:5", "statements": [ { "expression": { @@ -473,19 +473,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 598, + "id": 622, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 596, + "id": 620, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, - "src": "776:11:4", + "referencedDeclaration": 614, + "src": "776:11:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -496,14 +496,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 597, + "id": 621, "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", @@ -511,7 +511,7 @@ }, "value": "0" }, - "src": "776:16:4", + "src": "776:16:5", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -520,14 +520,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d617374657220636f707920616464726573732070726f7669646564", - "id": 599, + "id": 623, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "794:38:4", + "src": "794:38:5", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_108d84599042957b954e89d43b52f80be89321dfc114a37800028eba58dafc87", @@ -547,21 +547,21 @@ "typeString": "literal_string \"Invalid master copy address provided\"" } ], - "id": 595, + "id": 619, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "768:7:4", + "referencedDeclaration": 2663, + "src": "768:7:5", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 600, + "id": 624, "isConstant": false, "isLValue": false, "isPure": false, @@ -569,32 +569,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "768:65:4", + "src": "768:65:5", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 601, + "id": 625, "nodeType": "ExpressionStatement", - "src": "768:65:4" + "src": "768:65:5" }, { "expression": { "argumentTypes": null, - "id": 604, + "id": 628, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 602, + "id": 626, "name": "masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "843:10:4", + "referencedDeclaration": 612, + "src": "843:10:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -604,68 +604,68 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 603, + "id": 627, "name": "_masterCopy", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 590, - "src": "856:11:4", + "referencedDeclaration": 614, + "src": "856:11:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "843:24:4", + "src": "843:24:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 605, + "id": 629, "nodeType": "ExpressionStatement", - "src": "843:24:4" + "src": "843: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": 607, + "id": 631, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 593, + "id": 617, "modifierName": { "argumentTypes": null, - "id": 592, + "id": 616, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "696:10:4", + "referencedDeclaration": 1687, + "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": 591, + "id": 615, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 590, + "id": 614, "name": "_masterCopy", "nodeType": "VariableDeclaration", - "scope": 607, - "src": "652:19:4", + "scope": 631, + "src": "652:19:5", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -673,10 +673,10 @@ "typeString": "address" }, "typeName": { - "id": 589, + "id": 613, "name": "address", "nodeType": "ElementaryTypeName", - "src": "652:7:4", + "src": "652:7:5", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -686,33 +686,33 @@ "visibility": "internal" } ], - "src": "651:21:4" + "src": "651:21:5" }, "payable": false, "returnParameters": { - "id": 594, + "id": 618, "nodeType": "ParameterList", "parameters": [], - "src": "711:0:4" + "src": "711:0:5" }, - "scope": 608, - "src": "626:248:4", + "scope": 632, + "src": "626:248:5", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 609, - "src": "203:673:4" + "scope": 633, + "src": "203:673:5" } ], - "src": "0:877:4" + "src": "0:877:5" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-20T07:57:27.004Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:56.480Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/Migrations.json b/safe-contracts/build/contracts/Migrations.json index ebc98199..0acab730 100644 --- a/safe-contracts/build/contracts/Migrations.json +++ b/safe-contracts/build/contracts/Migrations.json @@ -182,7 +182,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2700, + "referencedDeclaration": 2659, "src": "156:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -286,7 +286,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2700, + "referencedDeclaration": 2659, "src": "242:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -832,7 +832,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2700, + "referencedDeclaration": 2659, "src": "156:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -936,7 +936,7 @@ "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2700, + "referencedDeclaration": 2659, "src": "242:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", @@ -1375,85 +1375,13 @@ "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { - "4": { + "1530197641790": { "events": {}, "links": {}, - "address": "0xce32c7e2149a331aee2b5c187ed2f6f9c11aeab8", - "transactionHash": "0xfc72d7fe2765cd48383b0b544a4ac17b07652fc9c8202d0f0e4a9042b4bc1104" - }, - "1529327661534": { - "events": {}, - "links": {}, - "address": "0x889100a6d41c4f2006ee7fcde320db2482f1859d", - "transactionHash": "0xb9d5d8746b5ee7d2b4473e13f48d0caaffc8a0ee327d1336c40c660fe5706bc1" - }, - "1529333415702": { - "events": {}, - "links": {}, - "address": "0xf1a3a15c821eb31eadcbbdb05e3a19d41e622074", - "transactionHash": "0x78a7a50665062991b8931337e43ac4f21200e6cecaa102d7685d9a391119c3ce" - }, - "1529652204341": { - "events": {}, - "links": {}, - "address": "0x8b8f0365a24b4c968b7a1ada7b116c510f2df133", - "transactionHash": "0xb6a19a7a679a1474c09c651e4151421f210afa3f47effed019d4c0206144ee5f" - }, - "1529931780812": { - "events": {}, - "links": {}, - "address": "0x5f83c5539488584618d33385560d37792ed03022", - "transactionHash": "0xb6a19a7a679a1474c09c651e4151421f210afa3f47effed019d4c0206144ee5f" - }, - "1529933005377": { - "events": {}, - "links": {}, - "address": "0x1c62104bfe9daf6e11ada075018db03bf02fa060", - "transactionHash": "0xb6a19a7a679a1474c09c651e4151421f210afa3f47effed019d4c0206144ee5f" - }, - "1529934931891": { - "events": {}, - "links": {}, - "address": "0x782727cdb138dd41235fad24043c82e41d68dd4e", - "transactionHash": "0xb6a19a7a679a1474c09c651e4151421f210afa3f47effed019d4c0206144ee5f" - }, - "1529935355957": { - "events": {}, - "links": {}, - "address": "0x9f6fa229c16e6f7ebd53ca9f8f19869fe2197c2d", - "transactionHash": "0xb6a19a7a679a1474c09c651e4151421f210afa3f47effed019d4c0206144ee5f" - }, - "1529936204222": { - "events": {}, - "links": {}, - "address": "0x0dbfb16488f35c62e220c04d9e2f4f65b1c627d8", - "transactionHash": "0xb6a19a7a679a1474c09c651e4151421f210afa3f47effed019d4c0206144ee5f" - }, - "1529937280871": { - "events": {}, - "links": {}, - "address": "0x0c2ca240bb72440c490b474a3aabb48a4297fccc", - "transactionHash": "0xb6a19a7a679a1474c09c651e4151421f210afa3f47effed019d4c0206144ee5f" - }, - "1529937637076": { - "events": {}, - "links": {}, - "address": "0x207d49c2d88e1324029a5cd95ddc5ef5e0da419b", - "transactionHash": "0xb6a19a7a679a1474c09c651e4151421f210afa3f47effed019d4c0206144ee5f" - }, - "1529937890676": { - "events": {}, - "links": {}, - "address": "0xcf0c710989e0aeba07b9190ae8ad36d83d18c903", - "transactionHash": "0xb6a19a7a679a1474c09c651e4151421f210afa3f47effed019d4c0206144ee5f" - }, - "1530013596495": { - "events": {}, - "links": {}, - "address": "0xc59c9b5aa1bc8e827227352ef2cb0f49218a7db5", - "transactionHash": "0xb6a19a7a679a1474c09c651e4151421f210afa3f47effed019d4c0206144ee5f" + "address": "0xcf48702e524286e7c578496f35d61e0b18d22524", + "transactionHash": "0xaba6cf32ac0288fa6af4d570636b6d5d74c52df2763e8e360b286bd531711331" } }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-26T11:47:04.154Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:58.214Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/Module.json b/safe-contracts/build/contracts/Module.json index 94a46b49..4f850506 100644 --- a/safe-contracts/build/contracts/Module.json +++ b/safe-contracts/build/contracts/Module.json @@ -32,49 +32,49 @@ ], "bytecode": "0x608060405234801561001057600080fd5b50610320806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156102b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058209951147672cfe41d050b6272c4cb5ea71158398cc1e2f233091154979218fedc0029", "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063481c6a75146100515780637de7edef146100a8575b600080fd5b34801561005d57600080fd5b506100666100eb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156100b457600080fd5b506100e9600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610111565b005b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156101fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156102b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505600a165627a7a723058209951147672cfe41d050b6272c4cb5ea71158398cc1e2f233091154979218fedc0029", - "sourceMap": "225:511:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;225:511:5;;;;;;;", - "deployedSourceMap": "225:511:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:5;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:5;;;;;;;;;;;;;:::o;626:248:4:-;359:7:5;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:4;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o", + "sourceMap": "225:511:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;225:511:7;;;;;;;", + "deployedSourceMap": "225:511:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:7;;;;;;;;;;;;;:::o;626:248:5:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::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), \"Method can only be called from 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, \"Manager has already been set\");\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": [ - 651 + 732 ] }, - "id": 652, + "id": 733, "nodeType": "SourceUnit", "nodes": [ { - "id": 610, + "id": 691, "literals": [ "solidity", "0.4", ".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": 611, + "id": 692, "nodeType": "ImportDirective", - "scope": 652, - "sourceUnit": 609, - "src": "24:26:5", + "scope": 733, + "sourceUnit": 633, + "src": "24:26:7", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "./ModuleManager.sol", - "id": 612, + "id": 693, "nodeType": "ImportDirective", - "scope": 652, - "sourceUnit": 1023, - "src": "51:29:5", + "scope": 733, + "sourceUnit": 1104, + "src": "51:29:7", "symbolAliases": [], "unitAlias": "" }, @@ -84,59 +84,59 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 613, + "id": 694, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 608, - "src": "244:10:5", + "referencedDeclaration": 632, + "src": "244:10:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$608", + "typeIdentifier": "t_contract$_MasterCopy_$632", "typeString": "contract MasterCopy" } }, - "id": 614, + "id": 695, "nodeType": "InheritanceSpecifier", - "src": "244:10:5" + "src": "244:10:7" } ], "contractDependencies": [ - 608, - 1449 + 632, + 1688 ], "contractKind": "contract", "documentation": "@title Module - Base class for modules.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 651, + "id": 732, "linearizedBaseContracts": [ - 651, - 608, - 1449 + 732, + 632, + 1688 ], "name": "Module", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 616, + "id": 697, "name": "manager", "nodeType": "VariableDeclaration", - "scope": 651, - "src": "262:28:5", + "scope": 732, + "src": "262:28:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" }, "typeName": { "contractScope": null, - "id": 615, + "id": 696, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1022, - "src": "262:13:5", + "referencedDeclaration": 1103, + "src": "262:13:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } }, @@ -145,9 +145,9 @@ }, { "body": { - "id": 629, + "id": 710, "nodeType": "Block", - "src": "319:109:5", + "src": "319:109:7", "statements": [ { "expression": { @@ -159,7 +159,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 624, + "id": 705, "isConstant": false, "isLValue": false, "isPure": false, @@ -168,18 +168,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 619, + "id": 700, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1773, - "src": "337:3:5", + "referencedDeclaration": 2659, + "src": "337:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 620, + "id": 701, "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": 622, + "id": 703, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "359:7:5", + "referencedDeclaration": 697, + "src": "359:7:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } } @@ -215,24 +215,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } ], - "id": 621, + "id": 702, "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": 623, + "id": 704, "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" @@ -255,14 +255,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572", - "id": 625, + "id": 706, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "369:40:5", + "src": "369:40:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f857f17fb7e241a141cb689ce417fc402008e9655fbe55c721e32587b5d510de", @@ -282,21 +282,21 @@ "typeString": "literal_string \"Method can only be called from manager\"" } ], - "id": 618, + "id": 699, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "329:7:5", + "referencedDeclaration": 2663, + "src": "329:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 626, + "id": 707, "isConstant": false, "isLValue": false, "isPure": false, @@ -304,41 +304,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "329:81:5", + "src": "329:81:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 627, + "id": 708, "nodeType": "ExpressionStatement", - "src": "329:81:5" + "src": "329:81:7" }, { - "id": 628, + "id": 709, "nodeType": "PlaceholderStatement", - "src": "420:1:5" + "src": "420:1:7" } ] }, "documentation": null, - "id": 630, + "id": 711, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 617, + "id": 698, "nodeType": "ParameterList", "parameters": [], - "src": "316:2:5" + "src": "316:2:7" }, - "src": "297:131:5", + "src": "297:131:7", "visibility": "internal" }, { "body": { - "id": 649, + "id": 730, "nodeType": "Block", - "src": "477:257:5", + "src": "477:257:7", "statements": [ { "expression": { @@ -350,7 +350,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 638, + "id": 719, "isConstant": false, "isLValue": false, "isPure": false, @@ -360,14 +360,14 @@ "arguments": [ { "argumentTypes": null, - "id": 635, + "id": 716, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "636:7:5", + "referencedDeclaration": 697, + "src": "636:7:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } } @@ -375,24 +375,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } ], - "id": 634, + "id": 715, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "628:7:5", + "src": "628:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 636, + "id": 717, "isConstant": false, "isLValue": false, "isPure": false, @@ -400,7 +400,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "628:16:5", + "src": "628:16:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -411,14 +411,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 637, + "id": 718, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "648:1:5", + "src": "648:1:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -426,7 +426,7 @@ }, "value": "0" }, - "src": "628:21:5", + "src": "628:21:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -435,14 +435,14 @@ { "argumentTypes": null, "hexValue": "4d616e616765722068617320616c7265616479206265656e20736574", - "id": 639, + "id": 720, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "651:30:5", + "src": "651:30:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5b4e79257e154cde85ff5a3cf5bf48eb2c3921f8c031de73d371d41be013f3cc", @@ -462,21 +462,21 @@ "typeString": "literal_string \"Manager has already been set\"" } ], - "id": 633, + "id": 714, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "620:7:5", + "referencedDeclaration": 2663, + "src": "620:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 640, + "id": 721, "isConstant": false, "isLValue": false, "isPure": false, @@ -484,34 +484,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "620:62:5", + "src": "620:62:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 641, + "id": 722, "nodeType": "ExpressionStatement", - "src": "620:62:5" + "src": "620:62:7" }, { "expression": { "argumentTypes": null, - "id": 647, + "id": 728, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 642, + "id": 723, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "692:7:5", + "referencedDeclaration": 697, + "src": "692:7:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } }, @@ -524,18 +524,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 644, + "id": 725, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1773, - "src": "716:3:5", + "referencedDeclaration": 2659, + "src": "716:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 645, + "id": 726, "isConstant": false, "isLValue": false, "isPure": false, @@ -543,7 +543,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "716:10:5", + "src": "716:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -557,18 +557,18 @@ "typeString": "address" } ], - "id": 643, + "id": 724, "name": "ModuleManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "702:13:5", + "referencedDeclaration": 1103, + "src": "702:13:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1022_$", + "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1103_$", "typeString": "type(contract ModuleManager)" } }, - "id": 646, + "id": 727, "isConstant": false, "isLValue": false, "isPure": false, @@ -576,26 +576,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "702:25:5", + "src": "702:25:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } }, - "src": "692:35:5", + "src": "692:35:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } }, - "id": 648, + "id": 729, "nodeType": "ExpressionStatement", - "src": "692:35:5" + "src": "692:35:7" } ] }, "documentation": null, - "id": 650, + "id": 731, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -603,70 +603,70 @@ "name": "setManager", "nodeType": "FunctionDefinition", "parameters": { - "id": 631, + "id": 712, "nodeType": "ParameterList", "parameters": [], - "src": "453:2:5" + "src": "453:2:7" }, "payable": false, "returnParameters": { - "id": 632, + "id": 713, "nodeType": "ParameterList", "parameters": [], - "src": "477:0:5" + "src": "477:0:7" }, - "scope": 651, - "src": "434:300:5", + "scope": 732, + "src": "434:300:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 652, - "src": "225:511:5" + "scope": 733, + "src": "225:511:7" } ], - "src": "0:737:5" + "src": "0:737:7" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "exportedSymbols": { "Module": [ - 651 + 732 ] }, - "id": 652, + "id": 733, "nodeType": "SourceUnit", "nodes": [ { - "id": 610, + "id": 691, "literals": [ "solidity", "0.4", ".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": 611, + "id": 692, "nodeType": "ImportDirective", - "scope": 652, - "sourceUnit": 609, - "src": "24:26:5", + "scope": 733, + "sourceUnit": 633, + "src": "24:26:7", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "./ModuleManager.sol", - "id": 612, + "id": 693, "nodeType": "ImportDirective", - "scope": 652, - "sourceUnit": 1023, - "src": "51:29:5", + "scope": 733, + "sourceUnit": 1104, + "src": "51:29:7", "symbolAliases": [], "unitAlias": "" }, @@ -676,59 +676,59 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 613, + "id": 694, "name": "MasterCopy", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 608, - "src": "244:10:5", + "referencedDeclaration": 632, + "src": "244:10:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_MasterCopy_$608", + "typeIdentifier": "t_contract$_MasterCopy_$632", "typeString": "contract MasterCopy" } }, - "id": 614, + "id": 695, "nodeType": "InheritanceSpecifier", - "src": "244:10:5" + "src": "244:10:7" } ], "contractDependencies": [ - 608, - 1449 + 632, + 1688 ], "contractKind": "contract", "documentation": "@title Module - Base class for modules.\n @author Stefan George - \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 651, + "id": 732, "linearizedBaseContracts": [ - 651, - 608, - 1449 + 732, + 632, + 1688 ], "name": "Module", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "id": 616, + "id": 697, "name": "manager", "nodeType": "VariableDeclaration", - "scope": 651, - "src": "262:28:5", + "scope": 732, + "src": "262:28:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" }, "typeName": { "contractScope": null, - "id": 615, + "id": 696, "name": "ModuleManager", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1022, - "src": "262:13:5", + "referencedDeclaration": 1103, + "src": "262:13:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } }, @@ -737,9 +737,9 @@ }, { "body": { - "id": 629, + "id": 710, "nodeType": "Block", - "src": "319:109:5", + "src": "319:109:7", "statements": [ { "expression": { @@ -751,7 +751,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 624, + "id": 705, "isConstant": false, "isLValue": false, "isPure": false, @@ -760,18 +760,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 619, + "id": 700, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1773, - "src": "337:3:5", + "referencedDeclaration": 2659, + "src": "337:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 620, + "id": 701, "isConstant": false, "isLValue": false, "isPure": false, @@ -779,7 +779,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "337:10:5", + "src": "337:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -792,14 +792,14 @@ "arguments": [ { "argumentTypes": null, - "id": 622, + "id": 703, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "359:7:5", + "referencedDeclaration": 697, + "src": "359:7:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } } @@ -807,24 +807,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } ], - "id": 621, + "id": 702, "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": 623, + "id": 704, "isConstant": false, "isLValue": false, "isPure": false, @@ -832,13 +832,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" @@ -847,14 +847,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d616e61676572", - "id": 625, + "id": 706, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "369:40:5", + "src": "369:40:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_f857f17fb7e241a141cb689ce417fc402008e9655fbe55c721e32587b5d510de", @@ -874,21 +874,21 @@ "typeString": "literal_string \"Method can only be called from manager\"" } ], - "id": 618, + "id": 699, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "329:7:5", + "referencedDeclaration": 2663, + "src": "329:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 626, + "id": 707, "isConstant": false, "isLValue": false, "isPure": false, @@ -896,41 +896,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "329:81:5", + "src": "329:81:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 627, + "id": 708, "nodeType": "ExpressionStatement", - "src": "329:81:5" + "src": "329:81:7" }, { - "id": 628, + "id": 709, "nodeType": "PlaceholderStatement", - "src": "420:1:5" + "src": "420:1:7" } ] }, "documentation": null, - "id": 630, + "id": 711, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 617, + "id": 698, "nodeType": "ParameterList", "parameters": [], - "src": "316:2:5" + "src": "316:2:7" }, - "src": "297:131:5", + "src": "297:131:7", "visibility": "internal" }, { "body": { - "id": 649, + "id": 730, "nodeType": "Block", - "src": "477:257:5", + "src": "477:257:7", "statements": [ { "expression": { @@ -942,7 +942,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 638, + "id": 719, "isConstant": false, "isLValue": false, "isPure": false, @@ -952,14 +952,14 @@ "arguments": [ { "argumentTypes": null, - "id": 635, + "id": 716, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "636:7:5", + "referencedDeclaration": 697, + "src": "636:7:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } } @@ -967,24 +967,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } ], - "id": 634, + "id": 715, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "628:7:5", + "src": "628:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 636, + "id": 717, "isConstant": false, "isLValue": false, "isPure": false, @@ -992,7 +992,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "628:16:5", + "src": "628:16:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1003,14 +1003,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 637, + "id": 718, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "648:1:5", + "src": "648:1:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1018,7 +1018,7 @@ }, "value": "0" }, - "src": "628:21:5", + "src": "628:21:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1027,14 +1027,14 @@ { "argumentTypes": null, "hexValue": "4d616e616765722068617320616c7265616479206265656e20736574", - "id": 639, + "id": 720, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "651:30:5", + "src": "651:30:7", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5b4e79257e154cde85ff5a3cf5bf48eb2c3921f8c031de73d371d41be013f3cc", @@ -1054,21 +1054,21 @@ "typeString": "literal_string \"Manager has already been set\"" } ], - "id": 633, + "id": 714, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "620:7:5", + "referencedDeclaration": 2663, + "src": "620:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 640, + "id": 721, "isConstant": false, "isLValue": false, "isPure": false, @@ -1076,34 +1076,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "620:62:5", + "src": "620:62:7", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 641, + "id": 722, "nodeType": "ExpressionStatement", - "src": "620:62:5" + "src": "620:62:7" }, { "expression": { "argumentTypes": null, - "id": 647, + "id": 728, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 642, + "id": 723, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "692:7:5", + "referencedDeclaration": 697, + "src": "692:7:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } }, @@ -1116,18 +1116,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 644, + "id": 725, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1773, - "src": "716:3:5", + "referencedDeclaration": 2659, + "src": "716:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 645, + "id": 726, "isConstant": false, "isLValue": false, "isPure": false, @@ -1135,7 +1135,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "716:10:5", + "src": "716:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1149,18 +1149,18 @@ "typeString": "address" } ], - "id": 643, + "id": 724, "name": "ModuleManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "702:13:5", + "referencedDeclaration": 1103, + "src": "702:13:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1022_$", + "typeIdentifier": "t_type$_t_contract$_ModuleManager_$1103_$", "typeString": "type(contract ModuleManager)" } }, - "id": 646, + "id": 727, "isConstant": false, "isLValue": false, "isPure": false, @@ -1168,26 +1168,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "702:25:5", + "src": "702:25:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } }, - "src": "692:35:5", + "src": "692:35:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } }, - "id": 648, + "id": 729, "nodeType": "ExpressionStatement", - "src": "692:35:5" + "src": "692:35:7" } ] }, "documentation": null, - "id": 650, + "id": 731, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1195,36 +1195,36 @@ "name": "setManager", "nodeType": "FunctionDefinition", "parameters": { - "id": 631, + "id": 712, "nodeType": "ParameterList", "parameters": [], - "src": "453:2:5" + "src": "453:2:7" }, "payable": false, "returnParameters": { - "id": 632, + "id": 713, "nodeType": "ParameterList", "parameters": [], - "src": "477:0:5" + "src": "477:0:7" }, - "scope": 651, - "src": "434:300:5", + "scope": 732, + "src": "434:300:7", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], - "scope": 652, - "src": "225:511:5" + "scope": 733, + "src": "225:511:7" } ], - "src": "0:737:5" + "src": "0:737:7" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-20T07:57:27.004Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:56.481Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/ModuleManager.json b/safe-contracts/build/contracts/ModuleManager.json index da7aae74..71d4cd7a 100644 --- a/safe-contracts/build/contracts/ModuleManager.json +++ b/safe-contracts/build/contracts/ModuleManager.json @@ -140,60 +140,60 @@ ], "bytecode": "0x608060405234801561001057600080fd5b50611165806100206000396000f300608060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a714610085578063610b59251461013d57806385e332cd14610180578063a3f4df7e146101d7578063b2494df314610267578063e009cfde146102d3578063ffa1ad7414610336575b005b34801561009157600080fd5b50610123600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b34801561014957600080fd5b5061017e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104f1565b005b34801561018c57600080fd5b506101956108cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101e357600080fd5b506101ec6108d0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022c578082015181840152602081019050610211565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027357600080fd5b5061027c610909565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102bf5780820151818401526020810190506102a4565b505050509050019250505060405180910390f35b3480156102df57600080fd5b50610334600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bac565b005b34801561034257600080fd5b5061034b610fc1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038b578082015181840152602081019050610370565b50505050905090810190601f1680156103b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156104da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b6104e7858585855a610ffa565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561060e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610a1b576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610977565b82604051908082528060200260200182016040528015610a4a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610ba357818184815181101515610af957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610ab4565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610cc95750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000600281111561100a57fe5b84600281111561101657fe5b141561102f57611028878787866110f7565b91506110ed565b6001600281111561103c57fe5b84600281111561104857fe5b141561106057611059878685611110565b91506110ec565b61106985611127565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820f43e83d5443f40446e47e2fddd6078716f3db286865b817224b5e97c0bf020390029", "deployedBytecode": "0x608060405260043610610083576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063468721a714610085578063610b59251461013d57806385e332cd14610180578063a3f4df7e146101d7578063b2494df314610267578063e009cfde146102d3578063ffa1ad7414610336575b005b34801561009157600080fd5b50610123600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291905050506103c6565b604051808215151515815260200191505060405180910390f35b34801561014957600080fd5b5061017e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506104f1565b005b34801561018c57600080fd5b506101956108cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101e357600080fd5b506101ec6108d0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561022c578082015181840152602081019050610211565b50505050905090810190601f1680156102595780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027357600080fd5b5061027c610909565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102bf5780820151818401526020810190506102a4565b505050509050019250505060405180910390f35b3480156102df57600080fd5b50610334600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610bac565b005b34801561034257600080fd5b5061034b610fc1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561038b578082015181840152602081019050610370565b50505050905090810190601f1680156103b85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000806000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156104da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206181526020017f6e20656e61626c6564206d6f64756c650000000000000000000000000000000081525060400191505060405180910390fd5b6104e7858585855a610ffa565b9050949350505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156105ba576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff161415801561060e5750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561076e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4d6f64756c652068617320616c7265616479206265656e20616464656400000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600181565b6040805190810160405280600e81526020017f4d6f64756c65204d616e6167657200000000000000000000000000000000000081525081565b6060600080606060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610a1b576000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610977565b82604051908082528060200260200182016040528015610a4a5781602001602082028038833980820191505090505b50905060009250600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691505b600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515610ba357818184815181101515610af957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508280600101935050610ab4565b80935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610cc95750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d3d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c6964206d6f64756c6520616464726573732070726f76696465640081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610e64576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722081526020017f70726f766964656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000806000600281111561100a57fe5b84600281111561101657fe5b141561102f57611028878787866110f7565b91506110ed565b6001600281111561103c57fe5b84600281111561104857fe5b141561106057611059878685611110565b91506110ec565b61106985611127565b905060008173ffffffffffffffffffffffffffffffffffffffff16141591507f4db17dd5e4732fb6da34a148104a592783ca119a1e7bb8829eba6cbadef0b51181604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15b5b5095945050505050565b6000806000845160208601878987f19050949350505050565b60008060008451602086018786f490509392505050565b60008151602083016000f090509190505600a165627a7a72305820f43e83d5443f40446e47e2fddd6078716f3db286865b817224b5e97c0bf020390029", - "sourceMap": "303:5231:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;303:5231:6;;;;;;;", - "deployedSourceMap": "303:5231:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2841:429;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2841:429:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:459: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4794:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4794: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;4794:738:6;;;;;;;;;;;;;;;;;2031:474;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2031:474: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2841:429;2973:12;3081:1;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;3050:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3217:46;3225:2;3229:5;3236:4;3242:9;3253;3217:7;:46::i;:::-;3207:56;;2841:429;;;;;;:::o;1311:459::-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1477:1:6;1466:6;1458:20;;;;:59;;;;;550:3;1482:35;;1490:6;1482:35;;;;1458:59;1450:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:1;1612:7;:15;1620:6;1612:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1604:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:7;:25;550:3;1694:25;;;;;;;;;;;;;;;;;;;;;;;;;1676:7;:15;1684:6;1676:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1757:6;1729:7;:25;550:3;1729:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1311:459;:::o;499:55::-;550:3;499:55;:::o;401:46::-;;;;;;;;;;;;;;;;;;;;:::o;4794:738::-;4861:9;4920:19;4953:21;5153:22;4942:1;4920:23;;4977:7;:25;550:3;4977:25;;;;;;;;;;;;;;;;;;;;;;;;;4953:49;;5012:132;550:3;5018:33;;:13;:33;;;;5012:132;;;5083:7;:22;5091:13;5083:22;;;;;;;;;;;;;;;;;;;;;;;;;5067:38;;5119:14;;;;;;;5012:132;;;5192:11;5178: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;5178:26:6;;;;5153:51;;5262:1;5248:15;;5289:7;:25;550:3;5289:25;;;;;;;;;;;;;;;;;;;;;;;;;5273:41;;5324:180;550:3;5330:33;;:13;:33;;;;5324:180;;;5400:13;5379:5;5385:11;5379:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5443:7;:22;5451:13;5443:22;;;;;;;;;;;;;;;;;;;;;;;;;5427:38;;5479:14;;;;;;;5324:180;;;5520:5;5513:12;;4794:738;;;;:::o;2031:474::-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:1:6;2234:6;2226:20;;;;:59;;;;;550:3;2250:35;;2258:6;2250:35;;;;2226:59;2218:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2370:6;2339:38;;:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2331:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2454:7;:15;2462:6;2454:15;;;;;;;;;;;;;;;;;;;;;;;;;2432:7;:19;2440:10;2432:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2497:1;2479:7;:15;2487:6;2479:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2031:474;;:::o;453:40::-;;;;;;;;;;;;;;;;;;;;:::o;3276:548::-;3407:12;3678:19;3452;3439:32;;;;;;;;:9;:32;;;;;;;;;3435:383;;;3495:35;3507:2;3511:5;3518:4;3524:5;3495:11;:35::i;:::-;3485:45;;3435:383;;;3562:27;3549:40;;;;;;;;:9;:40;;;;;;;;;3545:273;;;3613:36;3633:2;3637:4;3643:5;3613:19;:36::i;:::-;3603:46;;3545:273;;;3700:19;3714:4;3700:13;:19::i;:::-;3678:41;;3758:1;3743:11;:16;;;;3733:26;;3778:29;3795:11;3778:29;;;;;;;;;;;;;;;;;;;;;;3545:273;3435:383;3276:548;;;;;;;;:::o;3830:309::-;3939:12;4121:1;4118;4111:4;4105:11;4098:4;4092;4088:15;4081:5;4077:2;4070:5;4065:58;4054:69;;4040:93;;;;;;:::o;4145:303::-;4247:12;4430:1;4427;4420:4;4414:11;4407:4;4401;4397:15;4393:2;4386:5;4373:59;4362:70;;4348:94;;;;;:::o;4454:261::-;4523:19;4693:4;4687:11;4680:4;4674;4670:15;4667:1;4660:39;4645:54;;4631:78;;;:::o", + "sourceMap": "303:5231:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;303:5231:8;;;;;;;", + "deployedSourceMap": "303:5231:8:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2841:429;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2841:429:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1311:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1311:459: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4794:738;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4794: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;4794:738:8;;;;;;;;;;;;;;;;;2031:474;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2031:474: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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2841:429;2973:12;3081:1;3058:7;:19;3066:10;3058:19;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;;3050:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3217:46;3225:2;3229:5;3236:4;3242:9;3253;3217:7;:46::i;:::-;3207:56;;2841:429;;;;;;:::o;1311:459::-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1477:1:8;1466:6;1458:20;;;;:59;;;;;550:3;1482:35;;1490:6;1482:35;;;;1458:59;1450:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1631:1;1612:7;:15;1620:6;1612:15;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;1604:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1694:7;:25;550:3;1694:25;;;;;;;;;;;;;;;;;;;;;;;;;1676:7;:15;1684:6;1676:15;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;1757:6;1729:7;:25;550:3;1729:25;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;1311:459;:::o;499:55::-;550:3;499:55;:::o;401:46::-;;;;;;;;;;;;;;;;;;;;:::o;4794:738::-;4861:9;4920:19;4953:21;5153:22;4942:1;4920:23;;4977:7;:25;550:3;4977:25;;;;;;;;;;;;;;;;;;;;;;;;;4953:49;;5012:132;550:3;5018:33;;:13;:33;;;;5012:132;;;5083:7;:22;5091:13;5083:22;;;;;;;;;;;;;;;;;;;;;;;;;5067:38;;5119:14;;;;;;;5012:132;;;5192:11;5178: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;5178:26:8;;;;5153:51;;5262:1;5248:15;;5289:7;:25;550:3;5289:25;;;;;;;;;;;;;;;;;;;;;;;;;5273:41;;5324:180;550:3;5330:33;;:13;:33;;;;5324:180;;;5400:13;5379:5;5385:11;5379:18;;;;;;;;;;;;;;;;;:34;;;;;;;;;;;5443:7;:22;5451:13;5443:22;;;;;;;;;;;;;;;;;;;;;;;;;5427:38;;5479:14;;;;;;;5324:180;;;5520:5;5513:12;;4794:738;;;;:::o;2031:474::-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2245:1:8;2234:6;2226:20;;;;:59;;;;;550:3;2250:35;;2258:6;2250:35;;;;2226:59;2218:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2370:6;2339:38;;:7;:19;2347:10;2339:19;;;;;;;;;;;;;;;;;;;;;;;;;:38;;;2331:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2454:7;:15;2462:6;2454:15;;;;;;;;;;;;;;;;;;;;;;;;;2432:7;:19;2440:10;2432:19;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2497:1;2479:7;:15;2487:6;2479:15;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;2031:474;;:::o;453:40::-;;;;;;;;;;;;;;;;;;;;:::o;3276:548::-;3407:12;3678:19;3452;3439:32;;;;;;;;:9;:32;;;;;;;;;3435:383;;;3495:35;3507:2;3511:5;3518:4;3524:5;3495:11;:35::i;:::-;3485:45;;3435:383;;;3562:27;3549:40;;;;;;;;:9;:40;;;;;;;;;3545:273;;;3613:36;3633:2;3637:4;3643:5;3613:19;:36::i;:::-;3603:46;;3545:273;;;3700:19;3714:4;3700:13;:19::i;:::-;3678:41;;3758:1;3743:11;:16;;;;3733:26;;3778:29;3795:11;3778:29;;;;;;;;;;;;;;;;;;;;;;3545:273;3435:383;3276:548;;;;;;;;:::o;3830:309::-;3939:12;4121:1;4118;4111:4;4105:11;4098:4;4092;4088:15;4081:5;4077:2;4070:5;4065:58;4054:69;;4040:93;;;;;;:::o;4145:303::-;4247:12;4430:1;4427;4420:4;4414:11;4407:4;4401;4397:15;4393:2;4386:5;4373:59;4362:70;;4348:94;;;;;:::o;4454:261::-;4523:19;4693:4;4687:11;4680:4;4674;4670:15;4667:1;4660:39;4645:54;;4631: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, \"Modules have already been initialized\");\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()), \"Could not finish initialization\");\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, \"Invalid module address provided\");\n // Module cannot be added twice.\n require(modules[module] == 0, \"Module has already been added\");\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 and check that it corresponds to module index.\n require(address(module) != 0 && address(module) != SENTINEL_MODULES, \"Invalid module address provided\");\n require(modules[prevModule] == address(module), \"Invalid prevModule, module pair provided\");\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, \"Method can only be called from an enabled module\");\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": [ - 1022 + 1103 ] }, - "id": 1023, + "id": 1104, "nodeType": "SourceUnit", "nodes": [ { - "id": 653, + "id": 734, "literals": [ "solidity", "0.4", ".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": 654, + "id": 735, "nodeType": "ImportDirective", - "scope": 1023, - "sourceUnit": 652, - "src": "24:22:6", + "scope": 1104, + "sourceUnit": 733, + "src": "24:22:8", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 655, + "id": 736, "nodeType": "ImportDirective", - "scope": 1023, - "sourceUnit": 609, - "src": "47:26:6", + "scope": 1104, + "sourceUnit": 633, + "src": "47:26:8", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "./Enum.sol", - "id": 656, + "id": 737, "nodeType": "ImportDirective", - "scope": 1023, - "sourceUnit": 7, - "src": "74:20:6", + "scope": 1104, + "sourceUnit": 31, + "src": "74:20:8", "symbolAliases": [], "unitAlias": "" }, @@ -203,31 +203,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 657, + "id": 738, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1449, - "src": "329:14:6", + "referencedDeclaration": 1688, + "src": "329:14:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1449", + "typeIdentifier": "t_contract$_SelfAuthorized_$1688", "typeString": "contract SelfAuthorized" } }, - "id": 658, + "id": 739, "nodeType": "InheritanceSpecifier", - "src": "329:14:6" + "src": "329:14:8" } ], "contractDependencies": [ - 1449 + 1688 ], "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": 1022, + "id": 1103, "linearizedBaseContracts": [ - 1022, - 1449 + 1103, + 1688 ], "name": "ModuleManager", "nodeType": "ContractDefinition", @@ -235,21 +235,21 @@ { "anonymous": false, "documentation": null, - "id": 662, + "id": 743, "name": "ContractCreation", "nodeType": "EventDefinition", "parameters": { - "id": 661, + "id": 742, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 660, + "id": 741, "indexed": false, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 662, - "src": "374:19:6", + "scope": 743, + "src": "374:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -257,10 +257,10 @@ "typeString": "address" }, "typeName": { - "id": 659, + "id": 740, "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": 665, + "id": 746, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 1022, - "src": "401:46:6", + "scope": 1103, + "src": "401:46:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -288,10 +288,10 @@ "typeString": "string" }, "typeName": { - "id": 663, + "id": 744, "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": 664, + "id": 745, "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": 668, + "id": 749, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 1022, - "src": "453:40:6", + "scope": 1103, + "src": "453:40:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -331,10 +331,10 @@ "typeString": "string" }, "typeName": { - "id": 666, + "id": 747, "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": 667, + "id": 748, "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": 673, + "id": 754, "name": "SENTINEL_MODULES", "nodeType": "VariableDeclaration", - "scope": 1022, - "src": "499:55:6", + "scope": 1103, + "src": "499:55:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -374,10 +374,10 @@ "typeString": "address" }, "typeName": { - "id": 669, + "id": 750, "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": 671, + "id": 752, "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": 670, + "id": 751, "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": 672, + "id": 753, "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": 677, + "id": 758, "name": "modules", "nodeType": "VariableDeclaration", - "scope": 1022, - "src": "561:45:6", + "scope": 1103, + "src": "561:45:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -455,28 +455,28 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 676, + "id": 757, "keyType": { - "id": 674, + "id": 755, "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": 675, + "id": 756, "name": "address", "nodeType": "ElementaryTypeName", - "src": "581:7:6", + "src": "581:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -488,13 +488,13 @@ }, { "body": { - "id": 680, + "id": 761, "nodeType": "Block", - "src": "721:8:6", + "src": "721:8:8", "statements": [] }, "documentation": "@dev Fallback function accepts Ether transactions.", - "id": 681, + "id": 762, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -502,29 +502,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 678, + "id": 759, "nodeType": "ParameterList", "parameters": [], - "src": "681:2:6" + "src": "681:2:8" }, "payable": true, "returnParameters": { - "id": 679, + "id": 760, "nodeType": "ParameterList", "parameters": [], - "src": "721:0:6" + "src": "721:0:8" }, - "scope": 1022, - "src": "672:57:6", + "scope": 1103, + "src": "672:57:8", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 717, + "id": 798, "nodeType": "Block", - "src": "802:342:6", + "src": "802:342:8", "statements": [ { "expression": { @@ -536,7 +536,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 693, + "id": 774, "isConstant": false, "isLValue": false, "isPure": false, @@ -545,26 +545,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 689, + "id": 770, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "820:7:6", + "referencedDeclaration": 758, + "src": "820:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 691, + "id": 772, "indexExpression": { "argumentTypes": null, - "id": 690, + "id": 771, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "828:16:6", + "referencedDeclaration": 754, + "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": 692, + "id": 773, "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" @@ -610,14 +610,14 @@ { "argumentTypes": null, "hexValue": "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564", - "id": 694, + "id": 775, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "852:39:6", + "src": "852:39:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77", @@ -637,21 +637,21 @@ "typeString": "literal_string \"Modules have already been initialized\"" } ], - "id": 688, + "id": 769, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "812:7:6", + "referencedDeclaration": 2663, + "src": "812:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 695, + "id": 776, "isConstant": false, "isLValue": false, "isPure": false, @@ -659,20 +659,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "812:80:6", + "src": "812:80:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 696, + "id": 777, "nodeType": "ExpressionStatement", - "src": "812:80:6" + "src": "812:80:8" }, { "expression": { "argumentTypes": null, - "id": 701, + "id": 782, "isConstant": false, "isLValue": false, "isPure": false, @@ -681,26 +681,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 697, + "id": 778, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "902:7:6", + "referencedDeclaration": 758, + "src": "902:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 699, + "id": 780, "indexExpression": { "argumentTypes": null, - "id": 698, + "id": 779, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "910:16:6", + "referencedDeclaration": 754, + "src": "910:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -711,7 +711,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "902:25:6", + "src": "902:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -721,26 +721,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 700, + "id": 781, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "930:16:6", + "referencedDeclaration": 754, + "src": "930:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "902:44:6", + "src": "902:44:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 702, + "id": 783, "nodeType": "ExpressionStatement", - "src": "902:44:6" + "src": "902:44:8" }, { "condition": { @@ -749,19 +749,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 705, + "id": 786, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 703, + "id": 784, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 683, - "src": "960:2:6", + "referencedDeclaration": 764, + "src": "960:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -772,14 +772,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 704, + "id": 785, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "966:1:6", + "src": "966:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -787,16 +787,16 @@ }, "value": "0" }, - "src": "960:7:6", + "src": "960:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 716, + "id": 797, "nodeType": "IfStatement", - "src": "956:181:6", + "src": "956:181:8", "trueBody": { "expression": { "argumentTypes": null, @@ -806,12 +806,12 @@ "arguments": [ { "argumentTypes": null, - "id": 708, + "id": 789, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 683, - "src": "1081:2:6", + "referencedDeclaration": 764, + "src": "1081:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -819,12 +819,12 @@ }, { "argumentTypes": null, - "id": 709, + "id": 790, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 685, - "src": "1085:4:6", + "referencedDeclaration": 766, + "src": "1085:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -835,18 +835,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 710, + "id": 791, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "1091:7:6", + "referencedDeclaration": 2652, + "src": "1091:7:8", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 711, + "id": 792, "isConstant": false, "isLValue": false, "isPure": false, @@ -854,7 +854,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:9:6", + "src": "1091:9:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -876,18 +876,18 @@ "typeString": "uint256" } ], - "id": 707, + "id": 788, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 939, - "src": "1061:19:6", + "referencedDeclaration": 1020, + "src": "1061: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": 712, + "id": 793, "isConstant": false, "isLValue": false, "isPure": false, @@ -895,7 +895,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1061:40:6", + "src": "1061:40:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -904,14 +904,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e", - "id": 713, + "id": 794, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:33:6", + "src": "1103:33:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa", @@ -931,21 +931,21 @@ "typeString": "literal_string \"Could not finish initialization\"" } ], - "id": 706, + "id": 787, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1053:7:6", + "referencedDeclaration": 2663, + "src": "1053:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 714, + "id": 795, "isConstant": false, "isLValue": false, "isPure": false, @@ -953,21 +953,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1053:84:6", + "src": "1053:84:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 715, + "id": 796, "nodeType": "ExpressionStatement", - "src": "1053:84:6" + "src": "1053:84:8" } } ] }, "documentation": null, - "id": 718, + "id": 799, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -975,16 +975,16 @@ "name": "setupModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 686, + "id": 767, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 683, + "id": 764, "name": "to", "nodeType": "VariableDeclaration", - "scope": 718, - "src": "757:10:6", + "scope": 799, + "src": "757:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -992,10 +992,10 @@ "typeString": "address" }, "typeName": { - "id": 682, + "id": 763, "name": "address", "nodeType": "ElementaryTypeName", - "src": "757:7:6", + "src": "757:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1006,11 +1006,11 @@ }, { "constant": false, - "id": 685, + "id": 766, "name": "data", "nodeType": "VariableDeclaration", - "scope": 718, - "src": "769:10:6", + "scope": 799, + "src": "769:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1018,10 +1018,10 @@ "typeString": "bytes" }, "typeName": { - "id": 684, + "id": 765, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "769:5:6", + "src": "769:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1031,26 +1031,26 @@ "visibility": "internal" } ], - "src": "756:24:6" + "src": "756:24:8" }, "payable": false, "returnParameters": { - "id": 687, + "id": 768, "nodeType": "ParameterList", "parameters": [], - "src": "802:0:6" + "src": "802:0:8" }, - "scope": 1022, - "src": "735:409:6", + "scope": 1103, + "src": "735:409:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 763, + "id": 844, "nodeType": "Block", - "src": "1386:384:6", + "src": "1386:384:8", "statements": [ { "expression": { @@ -1062,7 +1062,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 736, + "id": 817, "isConstant": false, "isLValue": false, "isPure": false, @@ -1073,7 +1073,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 730, + "id": 811, "isConstant": false, "isLValue": false, "isPure": false, @@ -1083,14 +1083,14 @@ "arguments": [ { "argumentTypes": null, - "id": 727, + "id": 808, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "1466:6:6", + "referencedDeclaration": 801, + "src": "1466:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } } @@ -1098,24 +1098,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } ], - "id": 726, + "id": 807, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1458:7:6", + "src": "1458:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 728, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, @@ -1123,7 +1123,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1458:15:6", + "src": "1458:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1134,14 +1134,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 729, + "id": 810, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1477:1:6", + "src": "1477:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1149,7 +1149,7 @@ }, "value": "0" }, - "src": "1458:20:6", + "src": "1458:20:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1163,7 +1163,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 735, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, @@ -1173,14 +1173,14 @@ "arguments": [ { "argumentTypes": null, - "id": 732, + "id": 813, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "1490:6:6", + "referencedDeclaration": 801, + "src": "1490:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } } @@ -1188,24 +1188,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } ], - "id": 731, + "id": 812, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1482:7:6", + "src": "1482:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 733, + "id": 814, "isConstant": false, "isLValue": false, "isPure": false, @@ -1213,7 +1213,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1482:15:6", + "src": "1482:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1223,24 +1223,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 734, + "id": 815, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "1501:16:6", + "referencedDeclaration": 754, + "src": "1501:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1482:35:6", + "src": "1482:35:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1458:59:6", + "src": "1458:59:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1249,14 +1249,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 737, + "id": 818, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1519:33:6", + "src": "1519:33:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", @@ -1276,21 +1276,21 @@ "typeString": "literal_string \"Invalid module address provided\"" } ], - "id": 725, + "id": 806, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1450:7:6", + "referencedDeclaration": 2663, + "src": "1450:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 738, + "id": 819, "isConstant": false, "isLValue": false, "isPure": false, @@ -1298,15 +1298,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1450:103:6", + "src": "1450:103:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 739, + "id": 820, "nodeType": "ExpressionStatement", - "src": "1450:103:6" + "src": "1450:103:8" }, { "expression": { @@ -1318,7 +1318,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 745, + "id": 826, "isConstant": false, "isLValue": false, "isPure": false, @@ -1327,28 +1327,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 741, + "id": 822, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "1612:7:6", + "referencedDeclaration": 758, + "src": "1612:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 743, + "id": 824, "indexExpression": { "argumentTypes": null, - "id": 742, + "id": 823, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "1620:6:6", + "referencedDeclaration": 801, + "src": "1620:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -1357,7 +1357,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1612:15:6", + "src": "1612:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1368,14 +1368,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 744, + "id": 825, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1631:1:6", + "src": "1631:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1383,7 +1383,7 @@ }, "value": "0" }, - "src": "1612:20:6", + "src": "1612:20:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1392,14 +1392,14 @@ { "argumentTypes": null, "hexValue": "4d6f64756c652068617320616c7265616479206265656e206164646564", - "id": 746, + "id": 827, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1634:31:6", + "src": "1634:31:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", @@ -1419,21 +1419,21 @@ "typeString": "literal_string \"Module has already been added\"" } ], - "id": 740, + "id": 821, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1604:7:6", + "referencedDeclaration": 2663, + "src": "1604:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 747, + "id": 828, "isConstant": false, "isLValue": false, "isPure": false, @@ -1441,20 +1441,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1604:62:6", + "src": "1604:62:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 748, + "id": 829, "nodeType": "ExpressionStatement", - "src": "1604:62:6" + "src": "1604:62:8" }, { "expression": { "argumentTypes": null, - "id": 755, + "id": 836, "isConstant": false, "isLValue": false, "isPure": false, @@ -1463,28 +1463,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 749, + "id": 830, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "1676:7:6", + "referencedDeclaration": 758, + "src": "1676:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 751, + "id": 832, "indexExpression": { "argumentTypes": null, - "id": 750, + "id": 831, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "1684:6:6", + "referencedDeclaration": 801, + "src": "1684:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -1493,7 +1493,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1676:15:6", + "src": "1676:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1505,26 +1505,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 752, + "id": 833, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "1694:7:6", + "referencedDeclaration": 758, + "src": "1694:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 754, + "id": 835, "indexExpression": { "argumentTypes": null, - "id": 753, + "id": 834, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "1702:16:6", + "referencedDeclaration": 754, + "src": "1702:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1535,26 +1535,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1694:25:6", + "src": "1694:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1676:43:6", + "src": "1676:43:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 756, + "id": 837, "nodeType": "ExpressionStatement", - "src": "1676:43:6" + "src": "1676:43:8" }, { "expression": { "argumentTypes": null, - "id": 761, + "id": 842, "isConstant": false, "isLValue": false, "isPure": false, @@ -1563,26 +1563,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 757, + "id": 838, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "1729:7:6", + "referencedDeclaration": 758, + "src": "1729:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 759, + "id": 840, "indexExpression": { "argumentTypes": null, - "id": 758, + "id": 839, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "1737:16:6", + "referencedDeclaration": 754, + "src": "1737:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1593,7 +1593,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1729:25:6", + "src": "1729:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1603,83 +1603,83 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 760, + "id": 841, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "1757:6:6", + "referencedDeclaration": 801, + "src": "1757:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, - "src": "1729:34:6", + "src": "1729:34:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 762, + "id": 843, "nodeType": "ExpressionStatement", - "src": "1729:34:6" + "src": "1729: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": 764, + "id": 845, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 723, + "id": 804, "modifierName": { "argumentTypes": null, - "id": 722, + "id": 803, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "1371:10:6", + "referencedDeclaration": 1687, + "src": "1371:10:8", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1371:10:6" + "src": "1371:10:8" } ], "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 721, + "id": 802, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 720, + "id": 801, "name": "module", "nodeType": "VariableDeclaration", - "scope": 764, - "src": "1333:13:6", + "scope": 845, + "src": "1333:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 719, + "id": 800, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 651, - "src": "1333:6:6", + "referencedDeclaration": 732, + "src": "1333:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -1687,26 +1687,26 @@ "visibility": "internal" } ], - "src": "1332:15:6" + "src": "1332:15:8" }, "payable": false, "returnParameters": { - "id": 724, + "id": 805, "nodeType": "ParameterList", "parameters": [], - "src": "1386:0:6" + "src": "1386:0:8" }, - "scope": 1022, - "src": "1311:459:6", + "scope": 1103, + "src": "1311:459:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 813, + "id": 894, "nodeType": "Block", - "src": "2126:379:6", + "src": "2126:379:8", "statements": [ { "expression": { @@ -1718,7 +1718,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 784, + "id": 865, "isConstant": false, "isLValue": false, "isPure": false, @@ -1729,7 +1729,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 778, + "id": 859, "isConstant": false, "isLValue": false, "isPure": false, @@ -1739,14 +1739,14 @@ "arguments": [ { "argumentTypes": null, - "id": 775, + "id": 856, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "2234:6:6", + "referencedDeclaration": 849, + "src": "2234:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } } @@ -1754,24 +1754,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } ], - "id": 774, + "id": 855, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2226:7:6", + "src": "2226:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 776, + "id": 857, "isConstant": false, "isLValue": false, "isPure": false, @@ -1779,7 +1779,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2226:15:6", + "src": "2226:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1790,14 +1790,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 777, + "id": 858, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2245:1:6", + "src": "2245:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1805,7 +1805,7 @@ }, "value": "0" }, - "src": "2226:20:6", + "src": "2226:20:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1819,7 +1819,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 783, + "id": 864, "isConstant": false, "isLValue": false, "isPure": false, @@ -1829,14 +1829,14 @@ "arguments": [ { "argumentTypes": null, - "id": 780, + "id": 861, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "2258:6:6", + "referencedDeclaration": 849, + "src": "2258:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } } @@ -1844,24 +1844,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } ], - "id": 779, + "id": 860, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2250:7:6", + "src": "2250:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 781, + "id": 862, "isConstant": false, "isLValue": false, "isPure": false, @@ -1869,7 +1869,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2250:15:6", + "src": "2250:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1879,24 +1879,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 782, + "id": 863, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "2269:16:6", + "referencedDeclaration": 754, + "src": "2269:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2250:35:6", + "src": "2250:35:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2226:59:6", + "src": "2226:59:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1905,14 +1905,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 785, + "id": 866, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2287:33:6", + "src": "2287:33:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", @@ -1932,21 +1932,21 @@ "typeString": "literal_string \"Invalid module address provided\"" } ], - "id": 773, + "id": 854, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2218:7:6", + "referencedDeclaration": 2663, + "src": "2218:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 786, + "id": 867, "isConstant": false, "isLValue": false, "isPure": false, @@ -1954,15 +1954,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2218:103:6", + "src": "2218:103:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 787, + "id": 868, "nodeType": "ExpressionStatement", - "src": "2218:103:6" + "src": "2218:103:8" }, { "expression": { @@ -1974,7 +1974,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 795, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, @@ -1983,28 +1983,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 789, + "id": 870, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "2339:7:6", + "referencedDeclaration": 758, + "src": "2339:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 791, + "id": 872, "indexExpression": { "argumentTypes": null, - "id": 790, + "id": 871, "name": "prevModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 766, - "src": "2347:10:6", + "referencedDeclaration": 847, + "src": "2347:10:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -2013,7 +2013,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2339:19:6", + "src": "2339:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2026,14 +2026,14 @@ "arguments": [ { "argumentTypes": null, - "id": 793, + "id": 874, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "2370:6:6", + "referencedDeclaration": 849, + "src": "2370:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } } @@ -2041,24 +2041,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } ], - "id": 792, + "id": 873, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2362:7:6", + "src": "2362:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 794, + "id": 875, "isConstant": false, "isLValue": false, "isPure": false, @@ -2066,13 +2066,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2362:15:6", + "src": "2362:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2339:38:6", + "src": "2339:38:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2081,14 +2081,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564", - "id": 796, + "id": 877, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2379:42:6", + "src": "2379:42:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e", @@ -2108,21 +2108,21 @@ "typeString": "literal_string \"Invalid prevModule, module pair provided\"" } ], - "id": 788, + "id": 869, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2331:7:6", + "referencedDeclaration": 2663, + "src": "2331:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 797, + "id": 878, "isConstant": false, "isLValue": false, "isPure": false, @@ -2130,20 +2130,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2331:91:6", + "src": "2331:91:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 798, + "id": 879, "nodeType": "ExpressionStatement", - "src": "2331:91:6" + "src": "2331:91:8" }, { "expression": { "argumentTypes": null, - "id": 805, + "id": 886, "isConstant": false, "isLValue": false, "isPure": false, @@ -2152,28 +2152,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 799, + "id": 880, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "2432:7:6", + "referencedDeclaration": 758, + "src": "2432:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 801, + "id": 882, "indexExpression": { "argumentTypes": null, - "id": 800, + "id": 881, "name": "prevModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 766, - "src": "2440:10:6", + "referencedDeclaration": 847, + "src": "2440:10:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -2182,7 +2182,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2432:19:6", + "src": "2432:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2194,28 +2194,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 802, + "id": 883, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "2454:7:6", + "referencedDeclaration": 758, + "src": "2454:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 804, + "id": 885, "indexExpression": { "argumentTypes": null, - "id": 803, + "id": 884, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "2462:6:6", + "referencedDeclaration": 849, + "src": "2462:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -2224,26 +2224,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2454:15:6", + "src": "2454:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2432:37:6", + "src": "2432:37:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 806, + "id": 887, "nodeType": "ExpressionStatement", - "src": "2432:37:6" + "src": "2432:37:8" }, { "expression": { "argumentTypes": null, - "id": 811, + "id": 892, "isConstant": false, "isLValue": false, "isPure": false, @@ -2252,28 +2252,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 807, + "id": 888, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "2479:7:6", + "referencedDeclaration": 758, + "src": "2479:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 809, + "id": 890, "indexExpression": { "argumentTypes": null, - "id": 808, + "id": 889, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "2487:6:6", + "referencedDeclaration": 849, + "src": "2487:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -2282,7 +2282,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2479:15:6", + "src": "2479:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2293,14 +2293,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 810, + "id": 891, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2497:1:6", + "src": "2497:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2308,72 +2308,72 @@ }, "value": "0" }, - "src": "2479:19:6", + "src": "2479:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 812, + "id": 893, "nodeType": "ExpressionStatement", - "src": "2479:19:6" + "src": "2479: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": 814, + "id": 895, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 771, + "id": 852, "modifierName": { "argumentTypes": null, - "id": 770, + "id": 851, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "2111:10:6", + "referencedDeclaration": 1687, + "src": "2111:10:8", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2111:10:6" + "src": "2111:10:8" } ], "name": "disableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 769, + "id": 850, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 766, + "id": 847, "name": "prevModule", "nodeType": "VariableDeclaration", - "scope": 814, - "src": "2054:17:6", + "scope": 895, + "src": "2054:17:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 765, + "id": 846, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 651, - "src": "2054:6:6", + "referencedDeclaration": 732, + "src": "2054:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -2382,26 +2382,26 @@ }, { "constant": false, - "id": 768, + "id": 849, "name": "module", "nodeType": "VariableDeclaration", - "scope": 814, - "src": "2073:13:6", + "scope": 895, + "src": "2073:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 767, + "id": 848, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 651, - "src": "2073:6:6", + "referencedDeclaration": 732, + "src": "2073:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -2409,26 +2409,26 @@ "visibility": "internal" } ], - "src": "2053:34:6" + "src": "2053:34:8" }, "payable": false, "returnParameters": { - "id": 772, + "id": 853, "nodeType": "ParameterList", "parameters": [], - "src": "2126:0:6" + "src": "2126:0:8" }, - "scope": 1022, - "src": "2031:474:6", + "scope": 1103, + "src": "2031:474:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 848, + "id": 929, "nodeType": "Block", - "src": "2991:279:6", + "src": "2991:279:8", "statements": [ { "expression": { @@ -2440,7 +2440,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 833, + "id": 914, "isConstant": false, "isLValue": false, "isPure": false, @@ -2449,34 +2449,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 828, + "id": 909, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "3058:7:6", + "referencedDeclaration": 758, + "src": "3058:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 831, + "id": 912, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 829, + "id": 910, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1773, - "src": "3066:3:6", + "referencedDeclaration": 2659, + "src": "3066:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 830, + "id": 911, "isConstant": false, "isLValue": false, "isPure": false, @@ -2484,7 +2484,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3066:10:6", + "src": "3066:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2495,7 +2495,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3058:19:6", + "src": "3058:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2506,14 +2506,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 832, + "id": 913, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3081:1:6", + "src": "3081:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2521,7 +2521,7 @@ }, "value": "0" }, - "src": "3058:24:6", + "src": "3058:24:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2530,14 +2530,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65", - "id": 834, + "id": 915, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3084:50:6", + "src": "3084:50:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", @@ -2557,21 +2557,21 @@ "typeString": "literal_string \"Method can only be called from an enabled module\"" } ], - "id": 827, + "id": 908, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "3050:7:6", + "referencedDeclaration": 2663, + "src": "3050:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 835, + "id": 916, "isConstant": false, "isLValue": false, "isPure": false, @@ -2579,32 +2579,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3050:85:6", + "src": "3050:85:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 836, + "id": 917, "nodeType": "ExpressionStatement", - "src": "3050:85:6" + "src": "3050:85:8" }, { "expression": { "argumentTypes": null, - "id": 846, + "id": 927, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 837, + "id": 918, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 825, - "src": "3207:7:6", + "referencedDeclaration": 906, + "src": "3207:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2617,12 +2617,12 @@ "arguments": [ { "argumentTypes": null, - "id": 839, + "id": 920, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "3225:2:6", + "referencedDeclaration": 897, + "src": "3225:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2630,12 +2630,12 @@ }, { "argumentTypes": null, - "id": 840, + "id": 921, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, - "src": "3229:5:6", + "referencedDeclaration": 899, + "src": "3229:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2643,12 +2643,12 @@ }, { "argumentTypes": null, - "id": 841, + "id": 922, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 820, - "src": "3236:4:6", + "referencedDeclaration": 901, + "src": "3236:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2656,14 +2656,14 @@ }, { "argumentTypes": null, - "id": 842, + "id": 923, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "3242:9:6", + "referencedDeclaration": 903, + "src": "3242:9:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -2672,18 +2672,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 843, + "id": 924, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "3253:7:6", + "referencedDeclaration": 2652, + "src": "3253:7:8", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 844, + "id": 925, "isConstant": false, "isLValue": false, "isPure": false, @@ -2691,7 +2691,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3253:9:6", + "src": "3253:9:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2713,7 +2713,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -2721,18 +2721,18 @@ "typeString": "uint256" } ], - "id": 838, + "id": 919, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "3217:7:6", + "referencedDeclaration": 992, + "src": "3217: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": 845, + "id": 926, "isConstant": false, "isLValue": false, "isPure": false, @@ -2740,26 +2740,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3217:46:6", + "src": "3217:46:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3207:56:6", + "src": "3207:56:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 847, + "id": 928, "nodeType": "ExpressionStatement", - "src": "3207:56:6" + "src": "3207: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": 849, + "id": 930, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2767,16 +2767,16 @@ "name": "execTransactionFromModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 823, + "id": 904, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 816, + "id": 897, "name": "to", "nodeType": "VariableDeclaration", - "scope": 849, - "src": "2876:10:6", + "scope": 930, + "src": "2876:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2784,10 +2784,10 @@ "typeString": "address" }, "typeName": { - "id": 815, + "id": 896, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2876:7:6", + "src": "2876:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2798,11 +2798,11 @@ }, { "constant": false, - "id": 818, + "id": 899, "name": "value", "nodeType": "VariableDeclaration", - "scope": 849, - "src": "2888:13:6", + "scope": 930, + "src": "2888:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2810,10 +2810,10 @@ "typeString": "uint256" }, "typeName": { - "id": 817, + "id": 898, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2888:7:6", + "src": "2888:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2824,11 +2824,11 @@ }, { "constant": false, - "id": 820, + "id": 901, "name": "data", "nodeType": "VariableDeclaration", - "scope": 849, - "src": "2903:10:6", + "scope": 930, + "src": "2903:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2836,10 +2836,10 @@ "typeString": "bytes" }, "typeName": { - "id": 819, + "id": 900, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2903:5:6", + "src": "2903:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2850,26 +2850,26 @@ }, { "constant": false, - "id": 822, + "id": 903, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 849, - "src": "2915:24:6", + "scope": 930, + "src": "2915: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": 821, + "id": 902, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "2915:14:6", + "referencedDeclaration": 29, + "src": "2915:14:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -2877,20 +2877,20 @@ "visibility": "internal" } ], - "src": "2875:65:6" + "src": "2875:65:8" }, "payable": false, "returnParameters": { - "id": 826, + "id": 907, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 825, + "id": 906, "name": "success", "nodeType": "VariableDeclaration", - "scope": 849, - "src": "2973:12:6", + "scope": 930, + "src": "2973:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2898,10 +2898,10 @@ "typeString": "bool" }, "typeName": { - "id": 824, + "id": 905, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2973:4:6", + "src": "2973:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2911,42 +2911,42 @@ "visibility": "internal" } ], - "src": "2972:14:6" + "src": "2972:14:8" }, - "scope": 1022, - "src": "2841:429:6", + "scope": 1103, + "src": "2841:429:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 910, + "id": 991, "nodeType": "Block", - "src": "3425:399:6", + "src": "3425:399:8", "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, - "id": 868, + "id": 949, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 864, + "id": 945, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "3439:9:6", + "referencedDeclaration": 938, + "src": "3439:9:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -2958,32 +2958,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 865, + "id": 946, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "3452:4:6", + "referencedDeclaration": 30, + "src": "3452:4:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$6_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", "typeString": "type(contract Enum)" } }, - "id": 866, + "id": 947, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "3452:14:6", + "referencedDeclaration": 29, + "src": "3452:14:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$5_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 867, + "id": 948, "isConstant": false, "isLValue": false, "isPure": true, @@ -2991,13 +2991,13 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3452:19:6", + "src": "3452:19:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, - "src": "3439:32:6", + "src": "3439:32:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3007,24 +3007,24 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, - "id": 882, + "id": 963, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 878, + "id": 959, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "3549:9:6", + "referencedDeclaration": 938, + "src": "3549:9:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -3036,32 +3036,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 879, + "id": 960, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "3562:4:6", + "referencedDeclaration": 30, + "src": "3562:4:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$6_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", "typeString": "type(contract Enum)" } }, - "id": 880, + "id": 961, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "3562:14:6", + "referencedDeclaration": 29, + "src": "3562:14:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$5_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 881, + "id": 962, "isConstant": false, "isLValue": false, "isPure": true, @@ -3069,35 +3069,35 @@ "memberName": "DelegateCall", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3562:27:6", + "src": "3562:27:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, - "src": "3549:40:6", + "src": "3549:40:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 907, + "id": 988, "nodeType": "Block", - "src": "3664:154:6", + "src": "3664:154:8", "statements": [ { "assignments": [ - 892 + 973 ], "declarations": [ { "constant": false, - "id": 892, + "id": 973, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 911, - "src": "3678:19:6", + "scope": 992, + "src": "3678:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3105,10 +3105,10 @@ "typeString": "address" }, "typeName": { - "id": 891, + "id": 972, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3678:7:6", + "src": "3678:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3118,18 +3118,18 @@ "visibility": "internal" } ], - "id": 896, + "id": 977, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 894, + "id": 975, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "3714:4:6", + "referencedDeclaration": 936, + "src": "3714:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3143,18 +3143,18 @@ "typeString": "bytes memory" } ], - "id": 893, + "id": 974, "name": "executeCreate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 948, - "src": "3700:13:6", + "referencedDeclaration": 1029, + "src": "3700:13:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", "typeString": "function (bytes memory) returns (address)" } }, - "id": 895, + "id": 976, "isConstant": false, "isLValue": false, "isPure": false, @@ -3162,31 +3162,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3700:19:6", + "src": "3700:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "3678:41:6" + "src": "3678:41:8" }, { "expression": { "argumentTypes": null, - "id": 901, + "id": 982, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 897, + "id": 978, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 862, - "src": "3733:7:6", + "referencedDeclaration": 943, + "src": "3733:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3200,19 +3200,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 900, + "id": 981, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 898, + "id": 979, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 892, - "src": "3743:11:6", + "referencedDeclaration": 973, + "src": "3743:11:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3223,14 +3223,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 899, + "id": 980, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3758:1:6", + "src": "3758:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3238,21 +3238,21 @@ }, "value": "0" }, - "src": "3743:16:6", + "src": "3743:16:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3733:26:6", + "src": "3733:26:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 902, + "id": 983, "nodeType": "ExpressionStatement", - "src": "3733:26:6" + "src": "3733:26:8" }, { "eventCall": { @@ -3260,12 +3260,12 @@ "arguments": [ { "argumentTypes": null, - "id": 904, + "id": 985, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 892, - "src": "3795:11:6", + "referencedDeclaration": 973, + "src": "3795:11:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3279,18 +3279,18 @@ "typeString": "address" } ], - "id": 903, + "id": 984, "name": "ContractCreation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 662, - "src": "3778:16:6", + "referencedDeclaration": 743, + "src": "3778:16:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 905, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -3298,37 +3298,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3778:29:6", + "src": "3778:29:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 906, + "id": 987, "nodeType": "EmitStatement", - "src": "3773:34:6" + "src": "3773:34:8" } ] }, - "id": 908, + "id": 989, "nodeType": "IfStatement", - "src": "3545:273:6", + "src": "3545:273:8", "trueBody": { "expression": { "argumentTypes": null, - "id": 889, + "id": 970, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 883, + "id": 964, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 862, - "src": "3603:7:6", + "referencedDeclaration": 943, + "src": "3603:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3341,12 +3341,12 @@ "arguments": [ { "argumentTypes": null, - "id": 885, + "id": 966, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "3633:2:6", + "referencedDeclaration": 932, + "src": "3633:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3354,12 +3354,12 @@ }, { "argumentTypes": null, - "id": 886, + "id": 967, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "3637:4:6", + "referencedDeclaration": 936, + "src": "3637:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3367,12 +3367,12 @@ }, { "argumentTypes": null, - "id": 887, + "id": 968, "name": "txGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 859, - "src": "3643:5:6", + "referencedDeclaration": 940, + "src": "3643:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3394,18 +3394,18 @@ "typeString": "uint256" } ], - "id": 884, + "id": 965, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 939, - "src": "3613:19:6", + "referencedDeclaration": 1020, + "src": "3613: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": 888, + "id": 969, "isConstant": false, "isLValue": false, "isPure": false, @@ -3413,42 +3413,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3613:36:6", + "src": "3613:36:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3603:46:6", + "src": "3603:46:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 890, + "id": 971, "nodeType": "ExpressionStatement", - "src": "3603:46:6" + "src": "3603:46:8" } }, - "id": 909, + "id": 990, "nodeType": "IfStatement", - "src": "3435:383:6", + "src": "3435:383:8", "trueBody": { "expression": { "argumentTypes": null, - "id": 876, + "id": 957, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 869, + "id": 950, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 862, - "src": "3485:7:6", + "referencedDeclaration": 943, + "src": "3485:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3461,12 +3461,12 @@ "arguments": [ { "argumentTypes": null, - "id": 871, + "id": 952, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "3507:2:6", + "referencedDeclaration": 932, + "src": "3507:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3474,12 +3474,12 @@ }, { "argumentTypes": null, - "id": 872, + "id": 953, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 853, - "src": "3511:5:6", + "referencedDeclaration": 934, + "src": "3511:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3487,12 +3487,12 @@ }, { "argumentTypes": null, - "id": 873, + "id": 954, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "3518:4:6", + "referencedDeclaration": 936, + "src": "3518:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3500,12 +3500,12 @@ }, { "argumentTypes": null, - "id": 874, + "id": 955, "name": "txGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 859, - "src": "3524:5:6", + "referencedDeclaration": 940, + "src": "3524:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3531,18 +3531,18 @@ "typeString": "uint256" } ], - "id": 870, + "id": 951, "name": "executeCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 926, - "src": "3495:11:6", + "referencedDeclaration": 1007, + "src": "3495: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": 875, + "id": 956, "isConstant": false, "isLValue": false, "isPure": false, @@ -3550,27 +3550,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3495:35:6", + "src": "3495:35:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3485:45:6", + "src": "3485:45:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 877, + "id": 958, "nodeType": "ExpressionStatement", - "src": "3485:45:6" + "src": "3485:45:8" } } ] }, "documentation": null, - "id": 911, + "id": 992, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3578,16 +3578,16 @@ "name": "execute", "nodeType": "FunctionDefinition", "parameters": { - "id": 860, + "id": 941, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 851, + "id": 932, "name": "to", "nodeType": "VariableDeclaration", - "scope": 911, - "src": "3293:10:6", + "scope": 992, + "src": "3293:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3595,10 +3595,10 @@ "typeString": "address" }, "typeName": { - "id": 850, + "id": 931, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3293:7:6", + "src": "3293:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3609,11 +3609,11 @@ }, { "constant": false, - "id": 853, + "id": 934, "name": "value", "nodeType": "VariableDeclaration", - "scope": 911, - "src": "3305:13:6", + "scope": 992, + "src": "3305:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3621,10 +3621,10 @@ "typeString": "uint256" }, "typeName": { - "id": 852, + "id": 933, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3305:7:6", + "src": "3305:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3635,11 +3635,11 @@ }, { "constant": false, - "id": 855, + "id": 936, "name": "data", "nodeType": "VariableDeclaration", - "scope": 911, - "src": "3320:10:6", + "scope": 992, + "src": "3320:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3647,10 +3647,10 @@ "typeString": "bytes" }, "typeName": { - "id": 854, + "id": 935, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3320:5:6", + "src": "3320:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3661,26 +3661,26 @@ }, { "constant": false, - "id": 857, + "id": 938, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 911, - "src": "3332:24:6", + "scope": 992, + "src": "3332: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": 856, + "id": 937, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "3332:14:6", + "referencedDeclaration": 29, + "src": "3332:14:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -3689,11 +3689,11 @@ }, { "constant": false, - "id": 859, + "id": 940, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 911, - "src": "3358:13:6", + "scope": 992, + "src": "3358:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3701,10 +3701,10 @@ "typeString": "uint256" }, "typeName": { - "id": 858, + "id": 939, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3358:7:6", + "src": "3358:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3714,20 +3714,20 @@ "visibility": "internal" } ], - "src": "3292:80:6" + "src": "3292:80:8" }, "payable": false, "returnParameters": { - "id": 863, + "id": 944, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 862, + "id": 943, "name": "success", "nodeType": "VariableDeclaration", - "scope": 911, - "src": "3407:12:6", + "scope": 992, + "src": "3407:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3735,10 +3735,10 @@ "typeString": "bool" }, "typeName": { - "id": 861, + "id": 942, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3407:4:6", + "src": "3407:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3748,86 +3748,86 @@ "visibility": "internal" } ], - "src": "3406:14:6" + "src": "3406:14:8" }, - "scope": 1022, - "src": "3276:548:6", + "scope": 1103, + "src": "3276:548:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 925, + "id": 1006, "nodeType": "Block", - "src": "3957:182:6", + "src": "3957:182:8", "statements": [ { "externalReferences": [ { "data": { - "declaration": 917, + "declaration": 998, "isOffset": false, "isSlot": false, - "src": "4111:4:6", + "src": "4111:4:8", "valueSize": 1 } }, { "data": { - "declaration": 917, + "declaration": 998, "isOffset": false, "isSlot": false, - "src": "4092:4:6", + "src": "4092:4:8", "valueSize": 1 } }, { "success": { - "declaration": 922, + "declaration": 1003, "isOffset": false, "isSlot": false, - "src": "4054:7:6", + "src": "4054:7:8", "valueSize": 1 } }, { "txGas": { - "declaration": 919, + "declaration": 1000, "isOffset": false, "isSlot": false, - "src": "4070:5:6", + "src": "4070:5:8", "valueSize": 1 } }, { "to": { - "declaration": 913, + "declaration": 994, "isOffset": false, "isSlot": false, - "src": "4077:2:6", + "src": "4077:2:8", "valueSize": 1 } }, { "value": { - "declaration": 915, + "declaration": 996, "isOffset": false, "isSlot": false, - "src": "4081:5:6", + "src": "4081:5:8", "valueSize": 1 } } ], - "id": 924, + "id": 1005, "nodeType": "InlineAssembly", "operations": "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "4031:108:6" + "src": "4031:108:8" } ] }, "documentation": null, - "id": 926, + "id": 1007, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3835,16 +3835,16 @@ "name": "executeCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 920, + "id": 1001, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 913, + "id": 994, "name": "to", "nodeType": "VariableDeclaration", - "scope": 926, - "src": "3851:10:6", + "scope": 1007, + "src": "3851:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3852,10 +3852,10 @@ "typeString": "address" }, "typeName": { - "id": 912, + "id": 993, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3851:7:6", + "src": "3851:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3866,11 +3866,11 @@ }, { "constant": false, - "id": 915, + "id": 996, "name": "value", "nodeType": "VariableDeclaration", - "scope": 926, - "src": "3863:13:6", + "scope": 1007, + "src": "3863:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3878,10 +3878,10 @@ "typeString": "uint256" }, "typeName": { - "id": 914, + "id": 995, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3863:7:6", + "src": "3863:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3892,11 +3892,11 @@ }, { "constant": false, - "id": 917, + "id": 998, "name": "data", "nodeType": "VariableDeclaration", - "scope": 926, - "src": "3878:10:6", + "scope": 1007, + "src": "3878:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3904,10 +3904,10 @@ "typeString": "bytes" }, "typeName": { - "id": 916, + "id": 997, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3878:5:6", + "src": "3878:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3918,11 +3918,11 @@ }, { "constant": false, - "id": 919, + "id": 1000, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 926, - "src": "3890:13:6", + "scope": 1007, + "src": "3890:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3930,10 +3930,10 @@ "typeString": "uint256" }, "typeName": { - "id": 918, + "id": 999, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3890:7:6", + "src": "3890:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3943,20 +3943,20 @@ "visibility": "internal" } ], - "src": "3850:54:6" + "src": "3850:54:8" }, "payable": false, "returnParameters": { - "id": 923, + "id": 1004, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 922, + "id": 1003, "name": "success", "nodeType": "VariableDeclaration", - "scope": 926, - "src": "3939:12:6", + "scope": 1007, + "src": "3939:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3964,10 +3964,10 @@ "typeString": "bool" }, "typeName": { - "id": 921, + "id": 1002, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3939:4:6", + "src": "3939:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3977,77 +3977,77 @@ "visibility": "internal" } ], - "src": "3938:14:6" + "src": "3938:14:8" }, - "scope": 1022, - "src": "3830:309:6", + "scope": 1103, + "src": "3830:309:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 938, + "id": 1019, "nodeType": "Block", - "src": "4265:183:6", + "src": "4265:183:8", "statements": [ { "externalReferences": [ { "data": { - "declaration": 930, + "declaration": 1011, "isOffset": false, "isSlot": false, - "src": "4420:4:6", + "src": "4420:4:8", "valueSize": 1 } }, { "data": { - "declaration": 930, + "declaration": 1011, "isOffset": false, "isSlot": false, - "src": "4401:4:6", + "src": "4401:4:8", "valueSize": 1 } }, { "success": { - "declaration": 935, + "declaration": 1016, "isOffset": false, "isSlot": false, - "src": "4362:7:6", + "src": "4362:7:8", "valueSize": 1 } }, { "txGas": { - "declaration": 932, + "declaration": 1013, "isOffset": false, "isSlot": false, - "src": "4386:5:6", + "src": "4386:5:8", "valueSize": 1 } }, { "to": { - "declaration": 928, + "declaration": 1009, "isOffset": false, "isSlot": false, - "src": "4393:2:6", + "src": "4393:2:8", "valueSize": 1 } } ], - "id": 937, + "id": 1018, "nodeType": "InlineAssembly", "operations": "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "4339:109:6" + "src": "4339:109:8" } ] }, "documentation": null, - "id": 939, + "id": 1020, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4055,16 +4055,16 @@ "name": "executeDelegateCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 933, + "id": 1014, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 928, + "id": 1009, "name": "to", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "4174:10:6", + "scope": 1020, + "src": "4174:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4072,10 +4072,10 @@ "typeString": "address" }, "typeName": { - "id": 927, + "id": 1008, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4174:7:6", + "src": "4174:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4086,11 +4086,11 @@ }, { "constant": false, - "id": 930, + "id": 1011, "name": "data", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "4186:10:6", + "scope": 1020, + "src": "4186:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4098,10 +4098,10 @@ "typeString": "bytes" }, "typeName": { - "id": 929, + "id": 1010, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4186:5:6", + "src": "4186:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4112,11 +4112,11 @@ }, { "constant": false, - "id": 932, + "id": 1013, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "4198:13:6", + "scope": 1020, + "src": "4198:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4124,10 +4124,10 @@ "typeString": "uint256" }, "typeName": { - "id": 931, + "id": 1012, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4198:7:6", + "src": "4198:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4137,20 +4137,20 @@ "visibility": "internal" } ], - "src": "4173:39:6" + "src": "4173:39:8" }, "payable": false, "returnParameters": { - "id": 936, + "id": 1017, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 935, + "id": 1016, "name": "success", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "4247:12:6", + "scope": 1020, + "src": "4247:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4158,10 +4158,10 @@ "typeString": "bool" }, "typeName": { - "id": 934, + "id": 1015, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4247:4:6", + "src": "4247:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4171,59 +4171,59 @@ "visibility": "internal" } ], - "src": "4246:14:6" + "src": "4246:14:8" }, - "scope": 1022, - "src": "4145:303:6", + "scope": 1103, + "src": "4145:303:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 947, + "id": 1028, "nodeType": "Block", - "src": "4548:167:6", + "src": "4548:167:8", "statements": [ { "externalReferences": [ { "newContract": { - "declaration": 944, + "declaration": 1025, "isOffset": false, "isSlot": false, - "src": "4645:11:6", + "src": "4645:11:8", "valueSize": 1 } }, { "data": { - "declaration": 941, + "declaration": 1022, "isOffset": false, "isSlot": false, - "src": "4674:4:6", + "src": "4674:4:8", "valueSize": 1 } }, { "data": { - "declaration": 941, + "declaration": 1022, "isOffset": false, "isSlot": false, - "src": "4693:4:6", + "src": "4693:4:8", "valueSize": 1 } } ], - "id": 946, + "id": 1027, "nodeType": "InlineAssembly", "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", - "src": "4622:93:6" + "src": "4622:93:8" } ] }, "documentation": null, - "id": 948, + "id": 1029, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4231,16 +4231,16 @@ "name": "executeCreate", "nodeType": "FunctionDefinition", "parameters": { - "id": 942, + "id": 1023, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 941, + "id": 1022, "name": "data", "nodeType": "VariableDeclaration", - "scope": 948, - "src": "4477:10:6", + "scope": 1029, + "src": "4477:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4248,10 +4248,10 @@ "typeString": "bytes" }, "typeName": { - "id": 940, + "id": 1021, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4477:5:6", + "src": "4477:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4261,20 +4261,20 @@ "visibility": "internal" } ], - "src": "4476:12:6" + "src": "4476:12:8" }, "payable": false, "returnParameters": { - "id": 945, + "id": 1026, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 944, + "id": 1025, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 948, - "src": "4523:19:6", + "scope": 1029, + "src": "4523:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4282,10 +4282,10 @@ "typeString": "address" }, "typeName": { - "id": 943, + "id": 1024, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4523:7:6", + "src": "4523:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4295,32 +4295,32 @@ "visibility": "internal" } ], - "src": "4522:21:6" + "src": "4522:21:8" }, - "scope": 1022, - "src": "4454:261:6", + "scope": 1103, + "src": "4454:261:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1020, + "id": 1101, "nodeType": "Block", - "src": "4876:656:6", + "src": "4876:656:8", "statements": [ { "assignments": [ - 955 + 1036 ], "declarations": [ { "constant": false, - "id": 955, + "id": 1036, "name": "moduleCount", "nodeType": "VariableDeclaration", - "scope": 1021, - "src": "4920:19:6", + "scope": 1102, + "src": "4920:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4328,10 +4328,10 @@ "typeString": "uint256" }, "typeName": { - "id": 954, + "id": 1035, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4920:7:6", + "src": "4920:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4341,18 +4341,18 @@ "visibility": "internal" } ], - "id": 957, + "id": 1038, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 956, + "id": 1037, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4942:1:6", + "src": "4942:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4361,20 +4361,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4920:23:6" + "src": "4920:23:8" }, { "assignments": [ - 959 + 1040 ], "declarations": [ { "constant": false, - "id": 959, + "id": 1040, "name": "currentModule", "nodeType": "VariableDeclaration", - "scope": 1021, - "src": "4953:21:6", + "scope": 1102, + "src": "4953:21:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4382,10 +4382,10 @@ "typeString": "address" }, "typeName": { - "id": 958, + "id": 1039, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4953:7:6", + "src": "4953:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4395,31 +4395,31 @@ "visibility": "internal" } ], - "id": 963, + "id": 1044, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 960, + "id": 1041, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "4977:7:6", + "referencedDeclaration": 758, + "src": "4977:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 962, + "id": 1043, "indexExpression": { "argumentTypes": null, - "id": 961, + "id": 1042, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "4985:16:6", + "referencedDeclaration": 754, + "src": "4985:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4430,37 +4430,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4977:25:6", + "src": "4977:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4953:49:6" + "src": "4953:49:8" }, { "body": { - "id": 976, + "id": 1057, "nodeType": "Block", - "src": "5053:91:6", + "src": "5053:91:8", "statements": [ { "expression": { "argumentTypes": null, - "id": 971, + "id": 1052, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 967, + "id": 1048, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "5067:13:6", + "referencedDeclaration": 1040, + "src": "5067:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4472,26 +4472,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 968, + "id": 1049, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "5083:7:6", + "referencedDeclaration": 758, + "src": "5083:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 970, + "id": 1051, "indexExpression": { "argumentTypes": null, - "id": 969, + "id": 1050, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "5091:13:6", + "referencedDeclaration": 1040, + "src": "5091:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4502,26 +4502,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5083:22:6", + "src": "5083:22:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5067:38:6", + "src": "5067:38:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 972, + "id": 1053, "nodeType": "ExpressionStatement", - "src": "5067:38:6" + "src": "5067:38:8" }, { "expression": { "argumentTypes": null, - "id": 974, + "id": 1055, "isConstant": false, "isLValue": false, "isPure": false, @@ -4529,15 +4529,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5119:14:6", + "src": "5119:14:8", "subExpression": { "argumentTypes": null, - "id": 973, + "id": 1054, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 955, - "src": "5119:11:6", + "referencedDeclaration": 1036, + "src": "5119:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4548,9 +4548,9 @@ "typeString": "uint256" } }, - "id": 975, + "id": 1056, "nodeType": "ExpressionStatement", - "src": "5119:14:6" + "src": "5119:14:8" } ] }, @@ -4560,19 +4560,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 966, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 964, + "id": 1045, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "5018:13:6", + "referencedDeclaration": 1040, + "src": "5018:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4582,39 +4582,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 965, + "id": 1046, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "5035:16:6", + "referencedDeclaration": 754, + "src": "5035:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5018:33:6", + "src": "5018:33:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 977, + "id": 1058, "nodeType": "WhileStatement", - "src": "5012:132:6" + "src": "5012:132:8" }, { "assignments": [ - 981 + 1062 ], "declarations": [ { "constant": false, - "id": 981, + "id": 1062, "name": "array", "nodeType": "VariableDeclaration", - "scope": 1021, - "src": "5153:22:6", + "scope": 1102, + "src": "5153:22:8", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -4623,19 +4623,19 @@ }, "typeName": { "baseType": { - "id": 979, + "id": 1060, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5153:7:6", + "src": "5153:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 980, + "id": 1061, "length": null, "nodeType": "ArrayTypeName", - "src": "5153:9:6", + "src": "5153:9:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -4645,18 +4645,18 @@ "visibility": "internal" } ], - "id": 987, + "id": 1068, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 985, + "id": 1066, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 955, - "src": "5192:11:6", + "referencedDeclaration": 1036, + "src": "5192:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4670,39 +4670,39 @@ "typeString": "uint256" } ], - "id": 984, + "id": 1065, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "5178:13:6", + "src": "5178: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": 982, + "id": 1063, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5182:7:6", + "src": "5182:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 983, + "id": 1064, "length": null, "nodeType": "ArrayTypeName", - "src": "5182:9:6", + "src": "5182:9:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 986, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": false, @@ -4710,31 +4710,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5178:26:6", + "src": "5178:26:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5153:51:6" + "src": "5153:51:8" }, { "expression": { "argumentTypes": null, - "id": 990, + "id": 1071, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 988, + "id": 1069, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 955, - "src": "5248:11:6", + "referencedDeclaration": 1036, + "src": "5248:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4745,14 +4745,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 989, + "id": 1070, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5262:1:6", + "src": "5262:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4760,32 +4760,32 @@ }, "value": "0" }, - "src": "5248:15:6", + "src": "5248:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 991, + "id": 1072, "nodeType": "ExpressionStatement", - "src": "5248:15:6" + "src": "5248:15:8" }, { "expression": { "argumentTypes": null, - "id": 996, + "id": 1077, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 992, + "id": 1073, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "5273:13:6", + "referencedDeclaration": 1040, + "src": "5273:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4797,26 +4797,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 993, + "id": 1074, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "5289:7:6", + "referencedDeclaration": 758, + "src": "5289:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 995, + "id": 1076, "indexExpression": { "argumentTypes": null, - "id": 994, + "id": 1075, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "5297:16:6", + "referencedDeclaration": 754, + "src": "5297:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4827,32 +4827,32 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5289:25:6", + "src": "5289:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5273:41:6", + "src": "5273:41:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 997, + "id": 1078, "nodeType": "ExpressionStatement", - "src": "5273:41:6" + "src": "5273:41:8" }, { "body": { - "id": 1016, + "id": 1097, "nodeType": "Block", - "src": "5365:139:6", + "src": "5365:139:8", "statements": [ { "expression": { "argumentTypes": null, - "id": 1005, + "id": 1086, "isConstant": false, "isLValue": false, "isPure": false, @@ -4861,26 +4861,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1001, + "id": 1082, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "5379:5:6", + "referencedDeclaration": 1062, + "src": "5379:5:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1003, + "id": 1084, "indexExpression": { "argumentTypes": null, - "id": 1002, + "id": 1083, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 955, - "src": "5385:11:6", + "referencedDeclaration": 1036, + "src": "5385:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4891,7 +4891,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5379:18:6", + "src": "5379:18:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4901,43 +4901,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1004, + "id": 1085, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "5400:13:6", + "referencedDeclaration": 1040, + "src": "5400:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5379:34:6", + "src": "5379:34:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1006, + "id": 1087, "nodeType": "ExpressionStatement", - "src": "5379:34:6" + "src": "5379:34:8" }, { "expression": { "argumentTypes": null, - "id": 1011, + "id": 1092, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1007, + "id": 1088, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "5427:13:6", + "referencedDeclaration": 1040, + "src": "5427:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4949,26 +4949,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1008, + "id": 1089, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "5443:7:6", + "referencedDeclaration": 758, + "src": "5443:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1010, + "id": 1091, "indexExpression": { "argumentTypes": null, - "id": 1009, + "id": 1090, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "5451:13:6", + "referencedDeclaration": 1040, + "src": "5451:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4979,26 +4979,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5443:22:6", + "src": "5443:22:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5427:38:6", + "src": "5427:38:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1012, + "id": 1093, "nodeType": "ExpressionStatement", - "src": "5427:38:6" + "src": "5427:38:8" }, { "expression": { "argumentTypes": null, - "id": 1014, + "id": 1095, "isConstant": false, "isLValue": false, "isPure": false, @@ -5006,15 +5006,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5479:14:6", + "src": "5479:14:8", "subExpression": { "argumentTypes": null, - "id": 1013, + "id": 1094, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 955, - "src": "5479:11:6", + "referencedDeclaration": 1036, + "src": "5479:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5025,9 +5025,9 @@ "typeString": "uint256" } }, - "id": 1015, + "id": 1096, "nodeType": "ExpressionStatement", - "src": "5479:14:6" + "src": "5479:14:8" } ] }, @@ -5037,19 +5037,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1000, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 998, + "id": 1079, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "5330:13:6", + "referencedDeclaration": 1040, + "src": "5330:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5059,50 +5059,50 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 999, + "id": 1080, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "5347:16:6", + "referencedDeclaration": 754, + "src": "5347:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5330:33:6", + "src": "5330:33:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1017, + "id": 1098, "nodeType": "WhileStatement", - "src": "5324:180:6" + "src": "5324:180:8" }, { "expression": { "argumentTypes": null, - "id": 1018, + "id": 1099, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "5520:5:6", + "referencedDeclaration": 1062, + "src": "5520:5:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 953, - "id": 1019, + "functionReturnParameters": 1034, + "id": 1100, "nodeType": "Return", - "src": "5513:12:6" + "src": "5513:12:8" } ] }, "documentation": "@dev Returns array of modules.\n @return Array of modules.", - "id": 1021, + "id": 1102, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5110,23 +5110,23 @@ "name": "getModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 949, + "id": 1030, "nodeType": "ParameterList", "parameters": [], - "src": "4813:2:6" + "src": "4813:2:8" }, "payable": false, "returnParameters": { - "id": 953, + "id": 1034, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 952, + "id": 1033, "name": "", "nodeType": "VariableDeclaration", - "scope": 1021, - "src": "4861:9:6", + "scope": 1102, + "src": "4861:9:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5135,19 +5135,19 @@ }, "typeName": { "baseType": { - "id": 950, + "id": 1031, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4861:7:6", + "src": "4861:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 951, + "id": 1032, "length": null, "nodeType": "ArrayTypeName", - "src": "4861:9:6", + "src": "4861:9:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -5157,71 +5157,71 @@ "visibility": "internal" } ], - "src": "4860:11:6" + "src": "4860:11:8" }, - "scope": 1022, - "src": "4794:738:6", + "scope": 1103, + "src": "4794:738:8", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1023, - "src": "303:5231:6" + "scope": 1104, + "src": "303:5231:8" } ], - "src": "0:5535:6" + "src": "0:5535:8" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "exportedSymbols": { "ModuleManager": [ - 1022 + 1103 ] }, - "id": 1023, + "id": 1104, "nodeType": "SourceUnit", "nodes": [ { - "id": 653, + "id": 734, "literals": [ "solidity", "0.4", ".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": 654, + "id": 735, "nodeType": "ImportDirective", - "scope": 1023, - "sourceUnit": 652, - "src": "24:22:6", + "scope": 1104, + "sourceUnit": 733, + "src": "24:22:8", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/MasterCopy.sol", "file": "./MasterCopy.sol", - "id": 655, + "id": 736, "nodeType": "ImportDirective", - "scope": 1023, - "sourceUnit": 609, - "src": "47:26:6", + "scope": 1104, + "sourceUnit": 633, + "src": "47:26:8", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "./Enum.sol", - "id": 656, + "id": 737, "nodeType": "ImportDirective", - "scope": 1023, - "sourceUnit": 7, - "src": "74:20:6", + "scope": 1104, + "sourceUnit": 31, + "src": "74:20:8", "symbolAliases": [], "unitAlias": "" }, @@ -5231,31 +5231,31 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 657, + "id": 738, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1449, - "src": "329:14:6", + "referencedDeclaration": 1688, + "src": "329:14:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1449", + "typeIdentifier": "t_contract$_SelfAuthorized_$1688", "typeString": "contract SelfAuthorized" } }, - "id": 658, + "id": 739, "nodeType": "InheritanceSpecifier", - "src": "329:14:6" + "src": "329:14:8" } ], "contractDependencies": [ - 1449 + 1688 ], "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": 1022, + "id": 1103, "linearizedBaseContracts": [ - 1022, - 1449 + 1103, + 1688 ], "name": "ModuleManager", "nodeType": "ContractDefinition", @@ -5263,21 +5263,21 @@ { "anonymous": false, "documentation": null, - "id": 662, + "id": 743, "name": "ContractCreation", "nodeType": "EventDefinition", "parameters": { - "id": 661, + "id": 742, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 660, + "id": 741, "indexed": false, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 662, - "src": "374:19:6", + "scope": 743, + "src": "374:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5285,10 +5285,10 @@ "typeString": "address" }, "typeName": { - "id": 659, + "id": 740, "name": "address", "nodeType": "ElementaryTypeName", - "src": "374:7:6", + "src": "374:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5298,17 +5298,17 @@ "visibility": "internal" } ], - "src": "373:21:6" + "src": "373:21:8" }, - "src": "351:44:6" + "src": "351:44:8" }, { "constant": true, - "id": 665, + "id": 746, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 1022, - "src": "401:46:6", + "scope": 1103, + "src": "401:46:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5316,10 +5316,10 @@ "typeString": "string" }, "typeName": { - "id": 663, + "id": 744, "name": "string", "nodeType": "ElementaryTypeName", - "src": "401:6:6", + "src": "401:6:8", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -5328,14 +5328,14 @@ "value": { "argumentTypes": null, "hexValue": "4d6f64756c65204d616e61676572", - "id": 664, + "id": 745, "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", @@ -5347,11 +5347,11 @@ }, { "constant": true, - "id": 668, + "id": 749, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 1022, - "src": "453:40:6", + "scope": 1103, + "src": "453:40:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5359,10 +5359,10 @@ "typeString": "string" }, "typeName": { - "id": 666, + "id": 747, "name": "string", "nodeType": "ElementaryTypeName", - "src": "453:6:6", + "src": "453:6:8", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -5371,14 +5371,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 667, + "id": 748, "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", @@ -5390,11 +5390,11 @@ }, { "constant": true, - "id": 673, + "id": 754, "name": "SENTINEL_MODULES", "nodeType": "VariableDeclaration", - "scope": 1022, - "src": "499:55:6", + "scope": 1103, + "src": "499:55:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5402,10 +5402,10 @@ "typeString": "address" }, "typeName": { - "id": 669, + "id": 750, "name": "address", "nodeType": "ElementaryTypeName", - "src": "499:7:6", + "src": "499:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5417,14 +5417,14 @@ { "argumentTypes": null, "hexValue": "307831", - "id": 671, + "id": 752, "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", @@ -5440,20 +5440,20 @@ "typeString": "int_const 1" } ], - "id": 670, + "id": 751, "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": 672, + "id": 753, "isConstant": false, "isLValue": false, "isPure": true, @@ -5461,7 +5461,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "542:12:6", + "src": "542:12:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5471,11 +5471,11 @@ }, { "constant": false, - "id": 677, + "id": 758, "name": "modules", "nodeType": "VariableDeclaration", - "scope": 1022, - "src": "561:45:6", + "scope": 1103, + "src": "561:45:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5483,28 +5483,28 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 676, + "id": 757, "keyType": { - "id": 674, + "id": 755, "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": 675, + "id": 756, "name": "address", "nodeType": "ElementaryTypeName", - "src": "581:7:6", + "src": "581:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5516,13 +5516,13 @@ }, { "body": { - "id": 680, + "id": 761, "nodeType": "Block", - "src": "721:8:6", + "src": "721:8:8", "statements": [] }, "documentation": "@dev Fallback function accepts Ether transactions.", - "id": 681, + "id": 762, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5530,29 +5530,29 @@ "name": "", "nodeType": "FunctionDefinition", "parameters": { - "id": 678, + "id": 759, "nodeType": "ParameterList", "parameters": [], - "src": "681:2:6" + "src": "681:2:8" }, "payable": true, "returnParameters": { - "id": 679, + "id": 760, "nodeType": "ParameterList", "parameters": [], - "src": "721:0:6" + "src": "721:0:8" }, - "scope": 1022, - "src": "672:57:6", + "scope": 1103, + "src": "672:57:8", "stateMutability": "payable", "superFunction": null, "visibility": "external" }, { "body": { - "id": 717, + "id": 798, "nodeType": "Block", - "src": "802:342:6", + "src": "802:342:8", "statements": [ { "expression": { @@ -5564,7 +5564,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 693, + "id": 774, "isConstant": false, "isLValue": false, "isPure": false, @@ -5573,26 +5573,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 689, + "id": 770, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "820:7:6", + "referencedDeclaration": 758, + "src": "820:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 691, + "id": 772, "indexExpression": { "argumentTypes": null, - "id": 690, + "id": 771, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "828:16:6", + "referencedDeclaration": 754, + "src": "828:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5603,7 +5603,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "820:25:6", + "src": "820:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5614,14 +5614,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 692, + "id": 773, "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", @@ -5629,7 +5629,7 @@ }, "value": "0" }, - "src": "820:30:6", + "src": "820:30:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5638,14 +5638,14 @@ { "argumentTypes": null, "hexValue": "4d6f64756c6573206861766520616c7265616479206265656e20696e697469616c697a6564", - "id": 694, + "id": 775, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "852:39:6", + "src": "852:39:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_1e0428ffa69bff65645154a36d5017c238f946ddaf89430d30eec813f30bdd77", @@ -5665,21 +5665,21 @@ "typeString": "literal_string \"Modules have already been initialized\"" } ], - "id": 688, + "id": 769, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "812:7:6", + "referencedDeclaration": 2663, + "src": "812:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 695, + "id": 776, "isConstant": false, "isLValue": false, "isPure": false, @@ -5687,20 +5687,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "812:80:6", + "src": "812:80:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 696, + "id": 777, "nodeType": "ExpressionStatement", - "src": "812:80:6" + "src": "812:80:8" }, { "expression": { "argumentTypes": null, - "id": 701, + "id": 782, "isConstant": false, "isLValue": false, "isPure": false, @@ -5709,26 +5709,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 697, + "id": 778, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "902:7:6", + "referencedDeclaration": 758, + "src": "902:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 699, + "id": 780, "indexExpression": { "argumentTypes": null, - "id": 698, + "id": 779, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "910:16:6", + "referencedDeclaration": 754, + "src": "910:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5739,7 +5739,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "902:25:6", + "src": "902:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5749,26 +5749,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 700, + "id": 781, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "930:16:6", + "referencedDeclaration": 754, + "src": "930:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "902:44:6", + "src": "902:44:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 702, + "id": 783, "nodeType": "ExpressionStatement", - "src": "902:44:6" + "src": "902:44:8" }, { "condition": { @@ -5777,19 +5777,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 705, + "id": 786, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 703, + "id": 784, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 683, - "src": "960:2:6", + "referencedDeclaration": 764, + "src": "960:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5800,14 +5800,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 704, + "id": 785, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "966:1:6", + "src": "966:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5815,16 +5815,16 @@ }, "value": "0" }, - "src": "960:7:6", + "src": "960:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 716, + "id": 797, "nodeType": "IfStatement", - "src": "956:181:6", + "src": "956:181:8", "trueBody": { "expression": { "argumentTypes": null, @@ -5834,12 +5834,12 @@ "arguments": [ { "argumentTypes": null, - "id": 708, + "id": 789, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 683, - "src": "1081:2:6", + "referencedDeclaration": 764, + "src": "1081:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5847,12 +5847,12 @@ }, { "argumentTypes": null, - "id": 709, + "id": 790, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 685, - "src": "1085:4:6", + "referencedDeclaration": 766, + "src": "1085:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5863,18 +5863,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 710, + "id": 791, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "1091:7:6", + "referencedDeclaration": 2652, + "src": "1091:7:8", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 711, + "id": 792, "isConstant": false, "isLValue": false, "isPure": false, @@ -5882,7 +5882,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1091:9:6", + "src": "1091:9:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5904,18 +5904,18 @@ "typeString": "uint256" } ], - "id": 707, + "id": 788, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 939, - "src": "1061:19:6", + "referencedDeclaration": 1020, + "src": "1061: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": 712, + "id": 793, "isConstant": false, "isLValue": false, "isPure": false, @@ -5923,7 +5923,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1061:40:6", + "src": "1061:40:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5932,14 +5932,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742066696e69736820696e697469616c697a6174696f6e", - "id": 713, + "id": 794, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1103:33:6", + "src": "1103:33:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_7913a3f9168bf3e458e3f42eb08db5c4b33f44228d345660887090b75e24c6aa", @@ -5959,21 +5959,21 @@ "typeString": "literal_string \"Could not finish initialization\"" } ], - "id": 706, + "id": 787, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1053:7:6", + "referencedDeclaration": 2663, + "src": "1053:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 714, + "id": 795, "isConstant": false, "isLValue": false, "isPure": false, @@ -5981,21 +5981,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1053:84:6", + "src": "1053:84:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 715, + "id": 796, "nodeType": "ExpressionStatement", - "src": "1053:84:6" + "src": "1053:84:8" } } ] }, "documentation": null, - "id": 718, + "id": 799, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -6003,16 +6003,16 @@ "name": "setupModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 686, + "id": 767, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 683, + "id": 764, "name": "to", "nodeType": "VariableDeclaration", - "scope": 718, - "src": "757:10:6", + "scope": 799, + "src": "757:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6020,10 +6020,10 @@ "typeString": "address" }, "typeName": { - "id": 682, + "id": 763, "name": "address", "nodeType": "ElementaryTypeName", - "src": "757:7:6", + "src": "757:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6034,11 +6034,11 @@ }, { "constant": false, - "id": 685, + "id": 766, "name": "data", "nodeType": "VariableDeclaration", - "scope": 718, - "src": "769:10:6", + "scope": 799, + "src": "769:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6046,10 +6046,10 @@ "typeString": "bytes" }, "typeName": { - "id": 684, + "id": 765, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "769:5:6", + "src": "769:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -6059,26 +6059,26 @@ "visibility": "internal" } ], - "src": "756:24:6" + "src": "756:24:8" }, "payable": false, "returnParameters": { - "id": 687, + "id": 768, "nodeType": "ParameterList", "parameters": [], - "src": "802:0:6" + "src": "802:0:8" }, - "scope": 1022, - "src": "735:409:6", + "scope": 1103, + "src": "735:409:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 763, + "id": 844, "nodeType": "Block", - "src": "1386:384:6", + "src": "1386:384:8", "statements": [ { "expression": { @@ -6090,7 +6090,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 736, + "id": 817, "isConstant": false, "isLValue": false, "isPure": false, @@ -6101,7 +6101,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 730, + "id": 811, "isConstant": false, "isLValue": false, "isPure": false, @@ -6111,14 +6111,14 @@ "arguments": [ { "argumentTypes": null, - "id": 727, + "id": 808, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "1466:6:6", + "referencedDeclaration": 801, + "src": "1466:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } } @@ -6126,24 +6126,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } ], - "id": 726, + "id": 807, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1458:7:6", + "src": "1458:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 728, + "id": 809, "isConstant": false, "isLValue": false, "isPure": false, @@ -6151,7 +6151,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1458:15:6", + "src": "1458:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6162,14 +6162,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 729, + "id": 810, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1477:1:6", + "src": "1477:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6177,7 +6177,7 @@ }, "value": "0" }, - "src": "1458:20:6", + "src": "1458:20:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6191,7 +6191,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 735, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, @@ -6201,14 +6201,14 @@ "arguments": [ { "argumentTypes": null, - "id": 732, + "id": 813, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "1490:6:6", + "referencedDeclaration": 801, + "src": "1490:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } } @@ -6216,24 +6216,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } ], - "id": 731, + "id": 812, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1482:7:6", + "src": "1482:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 733, + "id": 814, "isConstant": false, "isLValue": false, "isPure": false, @@ -6241,7 +6241,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1482:15:6", + "src": "1482:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6251,24 +6251,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 734, + "id": 815, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "1501:16:6", + "referencedDeclaration": 754, + "src": "1501:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1482:35:6", + "src": "1482:35:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1458:59:6", + "src": "1458:59:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6277,14 +6277,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 737, + "id": 818, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1519:33:6", + "src": "1519:33:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", @@ -6304,21 +6304,21 @@ "typeString": "literal_string \"Invalid module address provided\"" } ], - "id": 725, + "id": 806, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1450:7:6", + "referencedDeclaration": 2663, + "src": "1450:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 738, + "id": 819, "isConstant": false, "isLValue": false, "isPure": false, @@ -6326,15 +6326,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1450:103:6", + "src": "1450:103:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 739, + "id": 820, "nodeType": "ExpressionStatement", - "src": "1450:103:6" + "src": "1450:103:8" }, { "expression": { @@ -6346,7 +6346,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 745, + "id": 826, "isConstant": false, "isLValue": false, "isPure": false, @@ -6355,28 +6355,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 741, + "id": 822, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "1612:7:6", + "referencedDeclaration": 758, + "src": "1612:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 743, + "id": 824, "indexExpression": { "argumentTypes": null, - "id": 742, + "id": 823, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "1620:6:6", + "referencedDeclaration": 801, + "src": "1620:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -6385,7 +6385,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1612:15:6", + "src": "1612:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6396,14 +6396,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 744, + "id": 825, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1631:1:6", + "src": "1631:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6411,7 +6411,7 @@ }, "value": "0" }, - "src": "1612:20:6", + "src": "1612:20:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6420,14 +6420,14 @@ { "argumentTypes": null, "hexValue": "4d6f64756c652068617320616c7265616479206265656e206164646564", - "id": 746, + "id": 827, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1634:31:6", + "src": "1634:31:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae2b4ea52eaf6de3fb2d8a64b7555be2dfd285b837a62821bf24e7dc6f329450", @@ -6447,21 +6447,21 @@ "typeString": "literal_string \"Module has already been added\"" } ], - "id": 740, + "id": 821, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1604:7:6", + "referencedDeclaration": 2663, + "src": "1604:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 747, + "id": 828, "isConstant": false, "isLValue": false, "isPure": false, @@ -6469,20 +6469,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1604:62:6", + "src": "1604:62:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 748, + "id": 829, "nodeType": "ExpressionStatement", - "src": "1604:62:6" + "src": "1604:62:8" }, { "expression": { "argumentTypes": null, - "id": 755, + "id": 836, "isConstant": false, "isLValue": false, "isPure": false, @@ -6491,28 +6491,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 749, + "id": 830, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "1676:7:6", + "referencedDeclaration": 758, + "src": "1676:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 751, + "id": 832, "indexExpression": { "argumentTypes": null, - "id": 750, + "id": 831, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "1684:6:6", + "referencedDeclaration": 801, + "src": "1684:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -6521,7 +6521,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1676:15:6", + "src": "1676:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6533,26 +6533,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 752, + "id": 833, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "1694:7:6", + "referencedDeclaration": 758, + "src": "1694:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 754, + "id": 835, "indexExpression": { "argumentTypes": null, - "id": 753, + "id": 834, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "1702:16:6", + "referencedDeclaration": 754, + "src": "1702:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6563,26 +6563,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1694:25:6", + "src": "1694:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1676:43:6", + "src": "1676:43:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 756, + "id": 837, "nodeType": "ExpressionStatement", - "src": "1676:43:6" + "src": "1676:43:8" }, { "expression": { "argumentTypes": null, - "id": 761, + "id": 842, "isConstant": false, "isLValue": false, "isPure": false, @@ -6591,26 +6591,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 757, + "id": 838, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "1729:7:6", + "referencedDeclaration": 758, + "src": "1729:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 759, + "id": 840, "indexExpression": { "argumentTypes": null, - "id": 758, + "id": 839, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "1737:16:6", + "referencedDeclaration": 754, + "src": "1737:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6621,7 +6621,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1729:25:6", + "src": "1729:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6631,83 +6631,83 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 760, + "id": 841, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 720, - "src": "1757:6:6", + "referencedDeclaration": 801, + "src": "1757:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, - "src": "1729:34:6", + "src": "1729:34:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 762, + "id": 843, "nodeType": "ExpressionStatement", - "src": "1729:34:6" + "src": "1729: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": 764, + "id": 845, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 723, + "id": 804, "modifierName": { "argumentTypes": null, - "id": 722, + "id": 803, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "1371:10:6", + "referencedDeclaration": 1687, + "src": "1371:10:8", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "1371:10:6" + "src": "1371:10:8" } ], "name": "enableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 721, + "id": 802, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 720, + "id": 801, "name": "module", "nodeType": "VariableDeclaration", - "scope": 764, - "src": "1333:13:6", + "scope": 845, + "src": "1333:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 719, + "id": 800, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 651, - "src": "1333:6:6", + "referencedDeclaration": 732, + "src": "1333:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -6715,26 +6715,26 @@ "visibility": "internal" } ], - "src": "1332:15:6" + "src": "1332:15:8" }, "payable": false, "returnParameters": { - "id": 724, + "id": 805, "nodeType": "ParameterList", "parameters": [], - "src": "1386:0:6" + "src": "1386:0:8" }, - "scope": 1022, - "src": "1311:459:6", + "scope": 1103, + "src": "1311:459:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 813, + "id": 894, "nodeType": "Block", - "src": "2126:379:6", + "src": "2126:379:8", "statements": [ { "expression": { @@ -6746,7 +6746,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 784, + "id": 865, "isConstant": false, "isLValue": false, "isPure": false, @@ -6757,7 +6757,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 778, + "id": 859, "isConstant": false, "isLValue": false, "isPure": false, @@ -6767,14 +6767,14 @@ "arguments": [ { "argumentTypes": null, - "id": 775, + "id": 856, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "2234:6:6", + "referencedDeclaration": 849, + "src": "2234:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } } @@ -6782,24 +6782,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } ], - "id": 774, + "id": 855, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2226:7:6", + "src": "2226:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 776, + "id": 857, "isConstant": false, "isLValue": false, "isPure": false, @@ -6807,7 +6807,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2226:15:6", + "src": "2226:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6818,14 +6818,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 777, + "id": 858, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2245:1:6", + "src": "2245:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6833,7 +6833,7 @@ }, "value": "0" }, - "src": "2226:20:6", + "src": "2226:20:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6847,7 +6847,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 783, + "id": 864, "isConstant": false, "isLValue": false, "isPure": false, @@ -6857,14 +6857,14 @@ "arguments": [ { "argumentTypes": null, - "id": 780, + "id": 861, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "2258:6:6", + "referencedDeclaration": 849, + "src": "2258:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } } @@ -6872,24 +6872,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } ], - "id": 779, + "id": 860, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2250:7:6", + "src": "2250:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 781, + "id": 862, "isConstant": false, "isLValue": false, "isPure": false, @@ -6897,7 +6897,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2250:15:6", + "src": "2250:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6907,24 +6907,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 782, + "id": 863, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "2269:16:6", + "referencedDeclaration": 754, + "src": "2269:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2250:35:6", + "src": "2250:35:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2226:59:6", + "src": "2226:59:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6933,14 +6933,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206d6f64756c6520616464726573732070726f7669646564", - "id": 785, + "id": 866, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2287:33:6", + "src": "2287:33:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8c2199b479423c52a835dfe8b0f2e9eb4c1ec1069ba198ccc38077a4a88a5c00", @@ -6960,21 +6960,21 @@ "typeString": "literal_string \"Invalid module address provided\"" } ], - "id": 773, + "id": 854, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2218:7:6", + "referencedDeclaration": 2663, + "src": "2218:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 786, + "id": 867, "isConstant": false, "isLValue": false, "isPure": false, @@ -6982,15 +6982,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2218:103:6", + "src": "2218:103:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 787, + "id": 868, "nodeType": "ExpressionStatement", - "src": "2218:103:6" + "src": "2218:103:8" }, { "expression": { @@ -7002,7 +7002,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 795, + "id": 876, "isConstant": false, "isLValue": false, "isPure": false, @@ -7011,28 +7011,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 789, + "id": 870, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "2339:7:6", + "referencedDeclaration": 758, + "src": "2339:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 791, + "id": 872, "indexExpression": { "argumentTypes": null, - "id": 790, + "id": 871, "name": "prevModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 766, - "src": "2347:10:6", + "referencedDeclaration": 847, + "src": "2347:10:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -7041,7 +7041,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2339:19:6", + "src": "2339:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7054,14 +7054,14 @@ "arguments": [ { "argumentTypes": null, - "id": 793, + "id": 874, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "2370:6:6", + "referencedDeclaration": 849, + "src": "2370:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } } @@ -7069,24 +7069,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } ], - "id": 792, + "id": 873, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2362:7:6", + "src": "2362:7:8", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 794, + "id": 875, "isConstant": false, "isLValue": false, "isPure": false, @@ -7094,13 +7094,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2362:15:6", + "src": "2362:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2339:38:6", + "src": "2339:38:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7109,14 +7109,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764d6f64756c652c206d6f64756c6520706169722070726f7669646564", - "id": 796, + "id": 877, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2379:42:6", + "src": "2379:42:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5caa315f9c5cf61be71c182eef2dc9ef7b6ce6b42c320d36694e1d23e09c287e", @@ -7136,21 +7136,21 @@ "typeString": "literal_string \"Invalid prevModule, module pair provided\"" } ], - "id": 788, + "id": 869, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2331:7:6", + "referencedDeclaration": 2663, + "src": "2331:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 797, + "id": 878, "isConstant": false, "isLValue": false, "isPure": false, @@ -7158,20 +7158,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2331:91:6", + "src": "2331:91:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 798, + "id": 879, "nodeType": "ExpressionStatement", - "src": "2331:91:6" + "src": "2331:91:8" }, { "expression": { "argumentTypes": null, - "id": 805, + "id": 886, "isConstant": false, "isLValue": false, "isPure": false, @@ -7180,28 +7180,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 799, + "id": 880, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "2432:7:6", + "referencedDeclaration": 758, + "src": "2432:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 801, + "id": 882, "indexExpression": { "argumentTypes": null, - "id": 800, + "id": 881, "name": "prevModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 766, - "src": "2440:10:6", + "referencedDeclaration": 847, + "src": "2440:10:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -7210,7 +7210,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2432:19:6", + "src": "2432:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7222,28 +7222,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 802, + "id": 883, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "2454:7:6", + "referencedDeclaration": 758, + "src": "2454:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 804, + "id": 885, "indexExpression": { "argumentTypes": null, - "id": 803, + "id": 884, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "2462:6:6", + "referencedDeclaration": 849, + "src": "2462:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -7252,26 +7252,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2454:15:6", + "src": "2454:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2432:37:6", + "src": "2432:37:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 806, + "id": 887, "nodeType": "ExpressionStatement", - "src": "2432:37:6" + "src": "2432:37:8" }, { "expression": { "argumentTypes": null, - "id": 811, + "id": 892, "isConstant": false, "isLValue": false, "isPure": false, @@ -7280,28 +7280,28 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 807, + "id": 888, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "2479:7:6", + "referencedDeclaration": 758, + "src": "2479:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 809, + "id": 890, "indexExpression": { "argumentTypes": null, - "id": 808, + "id": 889, "name": "module", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 768, - "src": "2487:6:6", + "referencedDeclaration": 849, + "src": "2487:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -7310,7 +7310,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2479:15:6", + "src": "2479:15:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7321,14 +7321,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 810, + "id": 891, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2497:1:6", + "src": "2497:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7336,72 +7336,72 @@ }, "value": "0" }, - "src": "2479:19:6", + "src": "2479:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 812, + "id": 893, "nodeType": "ExpressionStatement", - "src": "2479:19:6" + "src": "2479: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": 814, + "id": 895, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 771, + "id": 852, "modifierName": { "argumentTypes": null, - "id": 770, + "id": 851, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "2111:10:6", + "referencedDeclaration": 1687, + "src": "2111:10:8", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2111:10:6" + "src": "2111:10:8" } ], "name": "disableModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 769, + "id": 850, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 766, + "id": 847, "name": "prevModule", "nodeType": "VariableDeclaration", - "scope": 814, - "src": "2054:17:6", + "scope": 895, + "src": "2054:17:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 765, + "id": 846, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 651, - "src": "2054:6:6", + "referencedDeclaration": 732, + "src": "2054:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -7410,26 +7410,26 @@ }, { "constant": false, - "id": 768, + "id": 849, "name": "module", "nodeType": "VariableDeclaration", - "scope": 814, - "src": "2073:13:6", + "scope": 895, + "src": "2073:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" }, "typeName": { "contractScope": null, - "id": 767, + "id": 848, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 651, - "src": "2073:6:6", + "referencedDeclaration": 732, + "src": "2073:6:8", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, @@ -7437,26 +7437,26 @@ "visibility": "internal" } ], - "src": "2053:34:6" + "src": "2053:34:8" }, "payable": false, "returnParameters": { - "id": 772, + "id": 853, "nodeType": "ParameterList", "parameters": [], - "src": "2126:0:6" + "src": "2126:0:8" }, - "scope": 1022, - "src": "2031:474:6", + "scope": 1103, + "src": "2031:474:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 848, + "id": 929, "nodeType": "Block", - "src": "2991:279:6", + "src": "2991:279:8", "statements": [ { "expression": { @@ -7468,7 +7468,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 833, + "id": 914, "isConstant": false, "isLValue": false, "isPure": false, @@ -7477,34 +7477,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 828, + "id": 909, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "3058:7:6", + "referencedDeclaration": 758, + "src": "3058:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 831, + "id": 912, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 829, + "id": 910, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1773, - "src": "3066:3:6", + "referencedDeclaration": 2659, + "src": "3066:3:8", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 830, + "id": 911, "isConstant": false, "isLValue": false, "isPure": false, @@ -7512,7 +7512,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3066:10:6", + "src": "3066:10:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7523,7 +7523,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3058:19:6", + "src": "3058:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7534,14 +7534,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 832, + "id": 913, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3081:1:6", + "src": "3081:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7549,7 +7549,7 @@ }, "value": "0" }, - "src": "3058:24:6", + "src": "3058:24:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7558,14 +7558,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d20616e20656e61626c6564206d6f64756c65", - "id": 834, + "id": 915, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3084:50:6", + "src": "3084:50:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cd36462b17a97c5a3df33333c859d5933a4fb7f5e1a0750f5def8eb51f3272e4", @@ -7585,21 +7585,21 @@ "typeString": "literal_string \"Method can only be called from an enabled module\"" } ], - "id": 827, + "id": 908, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "3050:7:6", + "referencedDeclaration": 2663, + "src": "3050:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 835, + "id": 916, "isConstant": false, "isLValue": false, "isPure": false, @@ -7607,32 +7607,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3050:85:6", + "src": "3050:85:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 836, + "id": 917, "nodeType": "ExpressionStatement", - "src": "3050:85:6" + "src": "3050:85:8" }, { "expression": { "argumentTypes": null, - "id": 846, + "id": 927, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 837, + "id": 918, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 825, - "src": "3207:7:6", + "referencedDeclaration": 906, + "src": "3207:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7645,12 +7645,12 @@ "arguments": [ { "argumentTypes": null, - "id": 839, + "id": 920, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 816, - "src": "3225:2:6", + "referencedDeclaration": 897, + "src": "3225:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7658,12 +7658,12 @@ }, { "argumentTypes": null, - "id": 840, + "id": 921, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, - "src": "3229:5:6", + "referencedDeclaration": 899, + "src": "3229:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7671,12 +7671,12 @@ }, { "argumentTypes": null, - "id": 841, + "id": 922, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 820, - "src": "3236:4:6", + "referencedDeclaration": 901, + "src": "3236:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -7684,14 +7684,14 @@ }, { "argumentTypes": null, - "id": 842, + "id": 923, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 822, - "src": "3242:9:6", + "referencedDeclaration": 903, + "src": "3242:9:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -7700,18 +7700,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 843, + "id": 924, "name": "gasleft", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "3253:7:6", + "referencedDeclaration": 2652, + "src": "3253:7:8", "typeDescriptions": { "typeIdentifier": "t_function_gasleft_view$__$returns$_t_uint256_$", "typeString": "function () view returns (uint256)" } }, - "id": 844, + "id": 925, "isConstant": false, "isLValue": false, "isPure": false, @@ -7719,7 +7719,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3253:9:6", + "src": "3253:9:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7741,7 +7741,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -7749,18 +7749,18 @@ "typeString": "uint256" } ], - "id": 838, + "id": 919, "name": "execute", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 911, - "src": "3217:7:6", + "referencedDeclaration": 992, + "src": "3217: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": 845, + "id": 926, "isConstant": false, "isLValue": false, "isPure": false, @@ -7768,26 +7768,26 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3217:46:6", + "src": "3217:46:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3207:56:6", + "src": "3207:56:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 847, + "id": 928, "nodeType": "ExpressionStatement", - "src": "3207:56:6" + "src": "3207: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": 849, + "id": 930, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7795,16 +7795,16 @@ "name": "execTransactionFromModule", "nodeType": "FunctionDefinition", "parameters": { - "id": 823, + "id": 904, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 816, + "id": 897, "name": "to", "nodeType": "VariableDeclaration", - "scope": 849, - "src": "2876:10:6", + "scope": 930, + "src": "2876:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7812,10 +7812,10 @@ "typeString": "address" }, "typeName": { - "id": 815, + "id": 896, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2876:7:6", + "src": "2876:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7826,11 +7826,11 @@ }, { "constant": false, - "id": 818, + "id": 899, "name": "value", "nodeType": "VariableDeclaration", - "scope": 849, - "src": "2888:13:6", + "scope": 930, + "src": "2888:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7838,10 +7838,10 @@ "typeString": "uint256" }, "typeName": { - "id": 817, + "id": 898, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2888:7:6", + "src": "2888:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7852,11 +7852,11 @@ }, { "constant": false, - "id": 820, + "id": 901, "name": "data", "nodeType": "VariableDeclaration", - "scope": 849, - "src": "2903:10:6", + "scope": 930, + "src": "2903:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7864,10 +7864,10 @@ "typeString": "bytes" }, "typeName": { - "id": 819, + "id": 900, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2903:5:6", + "src": "2903:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7878,26 +7878,26 @@ }, { "constant": false, - "id": 822, + "id": 903, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 849, - "src": "2915:24:6", + "scope": 930, + "src": "2915: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": 821, + "id": 902, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "2915:14:6", + "referencedDeclaration": 29, + "src": "2915:14:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -7905,20 +7905,20 @@ "visibility": "internal" } ], - "src": "2875:65:6" + "src": "2875:65:8" }, "payable": false, "returnParameters": { - "id": 826, + "id": 907, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 825, + "id": 906, "name": "success", "nodeType": "VariableDeclaration", - "scope": 849, - "src": "2973:12:6", + "scope": 930, + "src": "2973:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7926,10 +7926,10 @@ "typeString": "bool" }, "typeName": { - "id": 824, + "id": 905, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "2973:4:6", + "src": "2973:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7939,42 +7939,42 @@ "visibility": "internal" } ], - "src": "2972:14:6" + "src": "2972:14:8" }, - "scope": 1022, - "src": "2841:429:6", + "scope": 1103, + "src": "2841:429:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 910, + "id": 991, "nodeType": "Block", - "src": "3425:399:6", + "src": "3425:399:8", "statements": [ { "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, - "id": 868, + "id": 949, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 864, + "id": 945, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "3439:9:6", + "referencedDeclaration": 938, + "src": "3439:9:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -7986,32 +7986,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 865, + "id": 946, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "3452:4:6", + "referencedDeclaration": 30, + "src": "3452:4:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$6_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", "typeString": "type(contract Enum)" } }, - "id": 866, + "id": 947, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "3452:14:6", + "referencedDeclaration": 29, + "src": "3452:14:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$5_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 867, + "id": 948, "isConstant": false, "isLValue": false, "isPure": true, @@ -8019,13 +8019,13 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3452:19:6", + "src": "3452:19:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, - "src": "3439:32:6", + "src": "3439:32:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8035,24 +8035,24 @@ "condition": { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, - "id": 882, + "id": 963, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 878, + "id": 959, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 857, - "src": "3549:9:6", + "referencedDeclaration": 938, + "src": "3549:9:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -8064,32 +8064,32 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 879, + "id": 960, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 6, - "src": "3562:4:6", + "referencedDeclaration": 30, + "src": "3562:4:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Enum_$6_$", + "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", "typeString": "type(contract Enum)" } }, - "id": 880, + "id": 961, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "Operation", "nodeType": "MemberAccess", - "referencedDeclaration": 5, - "src": "3562:14:6", + "referencedDeclaration": 29, + "src": "3562:14:8", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Operation_$5_$", + "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 881, + "id": 962, "isConstant": false, "isLValue": false, "isPure": true, @@ -8097,35 +8097,35 @@ "memberName": "DelegateCall", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3562:27:6", + "src": "3562:27:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, - "src": "3549:40:6", + "src": "3549:40:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 907, + "id": 988, "nodeType": "Block", - "src": "3664:154:6", + "src": "3664:154:8", "statements": [ { "assignments": [ - 892 + 973 ], "declarations": [ { "constant": false, - "id": 892, + "id": 973, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 911, - "src": "3678:19:6", + "scope": 992, + "src": "3678:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8133,10 +8133,10 @@ "typeString": "address" }, "typeName": { - "id": 891, + "id": 972, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3678:7:6", + "src": "3678:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8146,18 +8146,18 @@ "visibility": "internal" } ], - "id": 896, + "id": 977, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 894, + "id": 975, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "3714:4:6", + "referencedDeclaration": 936, + "src": "3714:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -8171,18 +8171,18 @@ "typeString": "bytes memory" } ], - "id": 893, + "id": 974, "name": "executeCreate", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 948, - "src": "3700:13:6", + "referencedDeclaration": 1029, + "src": "3700:13:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_memory_ptr_$returns$_t_address_$", "typeString": "function (bytes memory) returns (address)" } }, - "id": 895, + "id": 976, "isConstant": false, "isLValue": false, "isPure": false, @@ -8190,31 +8190,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3700:19:6", + "src": "3700:19:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "3678:41:6" + "src": "3678:41:8" }, { "expression": { "argumentTypes": null, - "id": 901, + "id": 982, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 897, + "id": 978, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 862, - "src": "3733:7:6", + "referencedDeclaration": 943, + "src": "3733:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8228,19 +8228,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 900, + "id": 981, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 898, + "id": 979, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 892, - "src": "3743:11:6", + "referencedDeclaration": 973, + "src": "3743:11:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8251,14 +8251,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 899, + "id": 980, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3758:1:6", + "src": "3758:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8266,21 +8266,21 @@ }, "value": "0" }, - "src": "3743:16:6", + "src": "3743:16:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3733:26:6", + "src": "3733:26:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 902, + "id": 983, "nodeType": "ExpressionStatement", - "src": "3733:26:6" + "src": "3733:26:8" }, { "eventCall": { @@ -8288,12 +8288,12 @@ "arguments": [ { "argumentTypes": null, - "id": 904, + "id": 985, "name": "newContract", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 892, - "src": "3795:11:6", + "referencedDeclaration": 973, + "src": "3795:11:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8307,18 +8307,18 @@ "typeString": "address" } ], - "id": 903, + "id": 984, "name": "ContractCreation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 662, - "src": "3778:16:6", + "referencedDeclaration": 743, + "src": "3778:16:8", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 905, + "id": 986, "isConstant": false, "isLValue": false, "isPure": false, @@ -8326,37 +8326,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3778:29:6", + "src": "3778:29:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 906, + "id": 987, "nodeType": "EmitStatement", - "src": "3773:34:6" + "src": "3773:34:8" } ] }, - "id": 908, + "id": 989, "nodeType": "IfStatement", - "src": "3545:273:6", + "src": "3545:273:8", "trueBody": { "expression": { "argumentTypes": null, - "id": 889, + "id": 970, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 883, + "id": 964, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 862, - "src": "3603:7:6", + "referencedDeclaration": 943, + "src": "3603:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8369,12 +8369,12 @@ "arguments": [ { "argumentTypes": null, - "id": 885, + "id": 966, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "3633:2:6", + "referencedDeclaration": 932, + "src": "3633:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8382,12 +8382,12 @@ }, { "argumentTypes": null, - "id": 886, + "id": 967, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "3637:4:6", + "referencedDeclaration": 936, + "src": "3637:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -8395,12 +8395,12 @@ }, { "argumentTypes": null, - "id": 887, + "id": 968, "name": "txGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 859, - "src": "3643:5:6", + "referencedDeclaration": 940, + "src": "3643:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8422,18 +8422,18 @@ "typeString": "uint256" } ], - "id": 884, + "id": 965, "name": "executeDelegateCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 939, - "src": "3613:19:6", + "referencedDeclaration": 1020, + "src": "3613: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": 888, + "id": 969, "isConstant": false, "isLValue": false, "isPure": false, @@ -8441,42 +8441,42 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3613:36:6", + "src": "3613:36:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3603:46:6", + "src": "3603:46:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 890, + "id": 971, "nodeType": "ExpressionStatement", - "src": "3603:46:6" + "src": "3603:46:8" } }, - "id": 909, + "id": 990, "nodeType": "IfStatement", - "src": "3435:383:6", + "src": "3435:383:8", "trueBody": { "expression": { "argumentTypes": null, - "id": 876, + "id": 957, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 869, + "id": 950, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 862, - "src": "3485:7:6", + "referencedDeclaration": 943, + "src": "3485:7:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8489,12 +8489,12 @@ "arguments": [ { "argumentTypes": null, - "id": 871, + "id": 952, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "3507:2:6", + "referencedDeclaration": 932, + "src": "3507:2:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8502,12 +8502,12 @@ }, { "argumentTypes": null, - "id": 872, + "id": 953, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 853, - "src": "3511:5:6", + "referencedDeclaration": 934, + "src": "3511:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8515,12 +8515,12 @@ }, { "argumentTypes": null, - "id": 873, + "id": 954, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "3518:4:6", + "referencedDeclaration": 936, + "src": "3518:4:8", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -8528,12 +8528,12 @@ }, { "argumentTypes": null, - "id": 874, + "id": 955, "name": "txGas", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 859, - "src": "3524:5:6", + "referencedDeclaration": 940, + "src": "3524:5:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8559,18 +8559,18 @@ "typeString": "uint256" } ], - "id": 870, + "id": 951, "name": "executeCall", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 926, - "src": "3495:11:6", + "referencedDeclaration": 1007, + "src": "3495: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": 875, + "id": 956, "isConstant": false, "isLValue": false, "isPure": false, @@ -8578,27 +8578,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3495:35:6", + "src": "3495:35:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3485:45:6", + "src": "3485:45:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 877, + "id": 958, "nodeType": "ExpressionStatement", - "src": "3485:45:6" + "src": "3485:45:8" } } ] }, "documentation": null, - "id": 911, + "id": 992, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -8606,16 +8606,16 @@ "name": "execute", "nodeType": "FunctionDefinition", "parameters": { - "id": 860, + "id": 941, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 851, + "id": 932, "name": "to", "nodeType": "VariableDeclaration", - "scope": 911, - "src": "3293:10:6", + "scope": 992, + "src": "3293:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8623,10 +8623,10 @@ "typeString": "address" }, "typeName": { - "id": 850, + "id": 931, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3293:7:6", + "src": "3293:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8637,11 +8637,11 @@ }, { "constant": false, - "id": 853, + "id": 934, "name": "value", "nodeType": "VariableDeclaration", - "scope": 911, - "src": "3305:13:6", + "scope": 992, + "src": "3305:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8649,10 +8649,10 @@ "typeString": "uint256" }, "typeName": { - "id": 852, + "id": 933, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3305:7:6", + "src": "3305:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8663,11 +8663,11 @@ }, { "constant": false, - "id": 855, + "id": 936, "name": "data", "nodeType": "VariableDeclaration", - "scope": 911, - "src": "3320:10:6", + "scope": 992, + "src": "3320:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8675,10 +8675,10 @@ "typeString": "bytes" }, "typeName": { - "id": 854, + "id": 935, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3320:5:6", + "src": "3320:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8689,26 +8689,26 @@ }, { "constant": false, - "id": 857, + "id": 938, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 911, - "src": "3332:24:6", + "scope": 992, + "src": "3332: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": 856, + "id": 937, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "3332:14:6", + "referencedDeclaration": 29, + "src": "3332:14:8", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -8717,11 +8717,11 @@ }, { "constant": false, - "id": 859, + "id": 940, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 911, - "src": "3358:13:6", + "scope": 992, + "src": "3358:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8729,10 +8729,10 @@ "typeString": "uint256" }, "typeName": { - "id": 858, + "id": 939, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3358:7:6", + "src": "3358:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8742,20 +8742,20 @@ "visibility": "internal" } ], - "src": "3292:80:6" + "src": "3292:80:8" }, "payable": false, "returnParameters": { - "id": 863, + "id": 944, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 862, + "id": 943, "name": "success", "nodeType": "VariableDeclaration", - "scope": 911, - "src": "3407:12:6", + "scope": 992, + "src": "3407:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8763,10 +8763,10 @@ "typeString": "bool" }, "typeName": { - "id": 861, + "id": 942, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3407:4:6", + "src": "3407:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8776,86 +8776,86 @@ "visibility": "internal" } ], - "src": "3406:14:6" + "src": "3406:14:8" }, - "scope": 1022, - "src": "3276:548:6", + "scope": 1103, + "src": "3276:548:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 925, + "id": 1006, "nodeType": "Block", - "src": "3957:182:6", + "src": "3957:182:8", "statements": [ { "externalReferences": [ { "data": { - "declaration": 917, + "declaration": 998, "isOffset": false, "isSlot": false, - "src": "4111:4:6", + "src": "4111:4:8", "valueSize": 1 } }, { "data": { - "declaration": 917, + "declaration": 998, "isOffset": false, "isSlot": false, - "src": "4092:4:6", + "src": "4092:4:8", "valueSize": 1 } }, { "success": { - "declaration": 922, + "declaration": 1003, "isOffset": false, "isSlot": false, - "src": "4054:7:6", + "src": "4054:7:8", "valueSize": 1 } }, { "txGas": { - "declaration": 919, + "declaration": 1000, "isOffset": false, "isSlot": false, - "src": "4070:5:6", + "src": "4070:5:8", "valueSize": 1 } }, { "to": { - "declaration": 913, + "declaration": 994, "isOffset": false, "isSlot": false, - "src": "4077:2:6", + "src": "4077:2:8", "valueSize": 1 } }, { "value": { - "declaration": 915, + "declaration": 996, "isOffset": false, "isSlot": false, - "src": "4081:5:6", + "src": "4081:5:8", "valueSize": 1 } } ], - "id": 924, + "id": 1005, "nodeType": "InlineAssembly", "operations": "{\n success := call(txGas, to, value, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "4031:108:6" + "src": "4031:108:8" } ] }, "documentation": null, - "id": 926, + "id": 1007, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -8863,16 +8863,16 @@ "name": "executeCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 920, + "id": 1001, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 913, + "id": 994, "name": "to", "nodeType": "VariableDeclaration", - "scope": 926, - "src": "3851:10:6", + "scope": 1007, + "src": "3851:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8880,10 +8880,10 @@ "typeString": "address" }, "typeName": { - "id": 912, + "id": 993, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3851:7:6", + "src": "3851:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8894,11 +8894,11 @@ }, { "constant": false, - "id": 915, + "id": 996, "name": "value", "nodeType": "VariableDeclaration", - "scope": 926, - "src": "3863:13:6", + "scope": 1007, + "src": "3863:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8906,10 +8906,10 @@ "typeString": "uint256" }, "typeName": { - "id": 914, + "id": 995, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3863:7:6", + "src": "3863:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8920,11 +8920,11 @@ }, { "constant": false, - "id": 917, + "id": 998, "name": "data", "nodeType": "VariableDeclaration", - "scope": 926, - "src": "3878:10:6", + "scope": 1007, + "src": "3878:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8932,10 +8932,10 @@ "typeString": "bytes" }, "typeName": { - "id": 916, + "id": 997, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3878:5:6", + "src": "3878:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8946,11 +8946,11 @@ }, { "constant": false, - "id": 919, + "id": 1000, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 926, - "src": "3890:13:6", + "scope": 1007, + "src": "3890:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8958,10 +8958,10 @@ "typeString": "uint256" }, "typeName": { - "id": 918, + "id": 999, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3890:7:6", + "src": "3890:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8971,20 +8971,20 @@ "visibility": "internal" } ], - "src": "3850:54:6" + "src": "3850:54:8" }, "payable": false, "returnParameters": { - "id": 923, + "id": 1004, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 922, + "id": 1003, "name": "success", "nodeType": "VariableDeclaration", - "scope": 926, - "src": "3939:12:6", + "scope": 1007, + "src": "3939:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8992,10 +8992,10 @@ "typeString": "bool" }, "typeName": { - "id": 921, + "id": 1002, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3939:4:6", + "src": "3939:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9005,77 +9005,77 @@ "visibility": "internal" } ], - "src": "3938:14:6" + "src": "3938:14:8" }, - "scope": 1022, - "src": "3830:309:6", + "scope": 1103, + "src": "3830:309:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 938, + "id": 1019, "nodeType": "Block", - "src": "4265:183:6", + "src": "4265:183:8", "statements": [ { "externalReferences": [ { "data": { - "declaration": 930, + "declaration": 1011, "isOffset": false, "isSlot": false, - "src": "4420:4:6", + "src": "4420:4:8", "valueSize": 1 } }, { "data": { - "declaration": 930, + "declaration": 1011, "isOffset": false, "isSlot": false, - "src": "4401:4:6", + "src": "4401:4:8", "valueSize": 1 } }, { "success": { - "declaration": 935, + "declaration": 1016, "isOffset": false, "isSlot": false, - "src": "4362:7:6", + "src": "4362:7:8", "valueSize": 1 } }, { "txGas": { - "declaration": 932, + "declaration": 1013, "isOffset": false, "isSlot": false, - "src": "4386:5:6", + "src": "4386:5:8", "valueSize": 1 } }, { "to": { - "declaration": 928, + "declaration": 1009, "isOffset": false, "isSlot": false, - "src": "4393:2:6", + "src": "4393:2:8", "valueSize": 1 } } ], - "id": 937, + "id": 1018, "nodeType": "InlineAssembly", "operations": "{\n success := delegatecall(txGas, to, add(data, 0x20), mload(data), 0, 0)\n}", - "src": "4339:109:6" + "src": "4339:109:8" } ] }, "documentation": null, - "id": 939, + "id": 1020, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -9083,16 +9083,16 @@ "name": "executeDelegateCall", "nodeType": "FunctionDefinition", "parameters": { - "id": 933, + "id": 1014, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 928, + "id": 1009, "name": "to", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "4174:10:6", + "scope": 1020, + "src": "4174:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9100,10 +9100,10 @@ "typeString": "address" }, "typeName": { - "id": 927, + "id": 1008, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4174:7:6", + "src": "4174:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9114,11 +9114,11 @@ }, { "constant": false, - "id": 930, + "id": 1011, "name": "data", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "4186:10:6", + "scope": 1020, + "src": "4186:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9126,10 +9126,10 @@ "typeString": "bytes" }, "typeName": { - "id": 929, + "id": 1010, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4186:5:6", + "src": "4186:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9140,11 +9140,11 @@ }, { "constant": false, - "id": 932, + "id": 1013, "name": "txGas", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "4198:13:6", + "scope": 1020, + "src": "4198:13:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9152,10 +9152,10 @@ "typeString": "uint256" }, "typeName": { - "id": 931, + "id": 1012, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4198:7:6", + "src": "4198:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9165,20 +9165,20 @@ "visibility": "internal" } ], - "src": "4173:39:6" + "src": "4173:39:8" }, "payable": false, "returnParameters": { - "id": 936, + "id": 1017, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 935, + "id": 1016, "name": "success", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "4247:12:6", + "scope": 1020, + "src": "4247:12:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9186,10 +9186,10 @@ "typeString": "bool" }, "typeName": { - "id": 934, + "id": 1015, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4247:4:6", + "src": "4247:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9199,59 +9199,59 @@ "visibility": "internal" } ], - "src": "4246:14:6" + "src": "4246:14:8" }, - "scope": 1022, - "src": "4145:303:6", + "scope": 1103, + "src": "4145:303:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 947, + "id": 1028, "nodeType": "Block", - "src": "4548:167:6", + "src": "4548:167:8", "statements": [ { "externalReferences": [ { "newContract": { - "declaration": 944, + "declaration": 1025, "isOffset": false, "isSlot": false, - "src": "4645:11:6", + "src": "4645:11:8", "valueSize": 1 } }, { "data": { - "declaration": 941, + "declaration": 1022, "isOffset": false, "isSlot": false, - "src": "4674:4:6", + "src": "4674:4:8", "valueSize": 1 } }, { "data": { - "declaration": 941, + "declaration": 1022, "isOffset": false, "isSlot": false, - "src": "4693:4:6", + "src": "4693:4:8", "valueSize": 1 } } ], - "id": 946, + "id": 1027, "nodeType": "InlineAssembly", "operations": "{\n newContract := create(0, add(data, 0x20), mload(data))\n}", - "src": "4622:93:6" + "src": "4622:93:8" } ] }, "documentation": null, - "id": 948, + "id": 1029, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -9259,16 +9259,16 @@ "name": "executeCreate", "nodeType": "FunctionDefinition", "parameters": { - "id": 942, + "id": 1023, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 941, + "id": 1022, "name": "data", "nodeType": "VariableDeclaration", - "scope": 948, - "src": "4477:10:6", + "scope": 1029, + "src": "4477:10:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9276,10 +9276,10 @@ "typeString": "bytes" }, "typeName": { - "id": 940, + "id": 1021, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4477:5:6", + "src": "4477:5:8", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9289,20 +9289,20 @@ "visibility": "internal" } ], - "src": "4476:12:6" + "src": "4476:12:8" }, "payable": false, "returnParameters": { - "id": 945, + "id": 1026, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 944, + "id": 1025, "name": "newContract", "nodeType": "VariableDeclaration", - "scope": 948, - "src": "4523:19:6", + "scope": 1029, + "src": "4523:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9310,10 +9310,10 @@ "typeString": "address" }, "typeName": { - "id": 943, + "id": 1024, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4523:7:6", + "src": "4523:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9323,32 +9323,32 @@ "visibility": "internal" } ], - "src": "4522:21:6" + "src": "4522:21:8" }, - "scope": 1022, - "src": "4454:261:6", + "scope": 1103, + "src": "4454:261:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1020, + "id": 1101, "nodeType": "Block", - "src": "4876:656:6", + "src": "4876:656:8", "statements": [ { "assignments": [ - 955 + 1036 ], "declarations": [ { "constant": false, - "id": 955, + "id": 1036, "name": "moduleCount", "nodeType": "VariableDeclaration", - "scope": 1021, - "src": "4920:19:6", + "scope": 1102, + "src": "4920:19:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9356,10 +9356,10 @@ "typeString": "uint256" }, "typeName": { - "id": 954, + "id": 1035, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4920:7:6", + "src": "4920:7:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9369,18 +9369,18 @@ "visibility": "internal" } ], - "id": 957, + "id": 1038, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 956, + "id": 1037, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4942:1:6", + "src": "4942:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9389,20 +9389,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4920:23:6" + "src": "4920:23:8" }, { "assignments": [ - 959 + 1040 ], "declarations": [ { "constant": false, - "id": 959, + "id": 1040, "name": "currentModule", "nodeType": "VariableDeclaration", - "scope": 1021, - "src": "4953:21:6", + "scope": 1102, + "src": "4953:21:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9410,10 +9410,10 @@ "typeString": "address" }, "typeName": { - "id": 958, + "id": 1039, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4953:7:6", + "src": "4953:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9423,31 +9423,31 @@ "visibility": "internal" } ], - "id": 963, + "id": 1044, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 960, + "id": 1041, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "4977:7:6", + "referencedDeclaration": 758, + "src": "4977:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 962, + "id": 1043, "indexExpression": { "argumentTypes": null, - "id": 961, + "id": 1042, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "4985:16:6", + "referencedDeclaration": 754, + "src": "4985:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9458,37 +9458,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4977:25:6", + "src": "4977:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "4953:49:6" + "src": "4953:49:8" }, { "body": { - "id": 976, + "id": 1057, "nodeType": "Block", - "src": "5053:91:6", + "src": "5053:91:8", "statements": [ { "expression": { "argumentTypes": null, - "id": 971, + "id": 1052, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 967, + "id": 1048, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "5067:13:6", + "referencedDeclaration": 1040, + "src": "5067:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9500,26 +9500,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 968, + "id": 1049, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "5083:7:6", + "referencedDeclaration": 758, + "src": "5083:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 970, + "id": 1051, "indexExpression": { "argumentTypes": null, - "id": 969, + "id": 1050, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "5091:13:6", + "referencedDeclaration": 1040, + "src": "5091:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9530,26 +9530,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5083:22:6", + "src": "5083:22:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5067:38:6", + "src": "5067:38:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 972, + "id": 1053, "nodeType": "ExpressionStatement", - "src": "5067:38:6" + "src": "5067:38:8" }, { "expression": { "argumentTypes": null, - "id": 974, + "id": 1055, "isConstant": false, "isLValue": false, "isPure": false, @@ -9557,15 +9557,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5119:14:6", + "src": "5119:14:8", "subExpression": { "argumentTypes": null, - "id": 973, + "id": 1054, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 955, - "src": "5119:11:6", + "referencedDeclaration": 1036, + "src": "5119:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9576,9 +9576,9 @@ "typeString": "uint256" } }, - "id": 975, + "id": 1056, "nodeType": "ExpressionStatement", - "src": "5119:14:6" + "src": "5119:14:8" } ] }, @@ -9588,19 +9588,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 966, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 964, + "id": 1045, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "5018:13:6", + "referencedDeclaration": 1040, + "src": "5018:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9610,39 +9610,39 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 965, + "id": 1046, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "5035:16:6", + "referencedDeclaration": 754, + "src": "5035:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5018:33:6", + "src": "5018:33:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 977, + "id": 1058, "nodeType": "WhileStatement", - "src": "5012:132:6" + "src": "5012:132:8" }, { "assignments": [ - 981 + 1062 ], "declarations": [ { "constant": false, - "id": 981, + "id": 1062, "name": "array", "nodeType": "VariableDeclaration", - "scope": 1021, - "src": "5153:22:6", + "scope": 1102, + "src": "5153:22:8", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -9651,19 +9651,19 @@ }, "typeName": { "baseType": { - "id": 979, + "id": 1060, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5153:7:6", + "src": "5153:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 980, + "id": 1061, "length": null, "nodeType": "ArrayTypeName", - "src": "5153:9:6", + "src": "5153:9:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -9673,18 +9673,18 @@ "visibility": "internal" } ], - "id": 987, + "id": 1068, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 985, + "id": 1066, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 955, - "src": "5192:11:6", + "referencedDeclaration": 1036, + "src": "5192:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9698,39 +9698,39 @@ "typeString": "uint256" } ], - "id": 984, + "id": 1065, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "5178:13:6", + "src": "5178: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": 982, + "id": 1063, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5182:7:6", + "src": "5182:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 983, + "id": 1064, "length": null, "nodeType": "ArrayTypeName", - "src": "5182:9:6", + "src": "5182:9:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 986, + "id": 1067, "isConstant": false, "isLValue": false, "isPure": false, @@ -9738,31 +9738,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5178:26:6", + "src": "5178:26:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5153:51:6" + "src": "5153:51:8" }, { "expression": { "argumentTypes": null, - "id": 990, + "id": 1071, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 988, + "id": 1069, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 955, - "src": "5248:11:6", + "referencedDeclaration": 1036, + "src": "5248:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9773,14 +9773,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 989, + "id": 1070, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5262:1:6", + "src": "5262:1:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9788,32 +9788,32 @@ }, "value": "0" }, - "src": "5248:15:6", + "src": "5248:15:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 991, + "id": 1072, "nodeType": "ExpressionStatement", - "src": "5248:15:6" + "src": "5248:15:8" }, { "expression": { "argumentTypes": null, - "id": 996, + "id": 1077, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 992, + "id": 1073, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "5273:13:6", + "referencedDeclaration": 1040, + "src": "5273:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9825,26 +9825,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 993, + "id": 1074, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "5289:7:6", + "referencedDeclaration": 758, + "src": "5289:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 995, + "id": 1076, "indexExpression": { "argumentTypes": null, - "id": 994, + "id": 1075, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "5297:16:6", + "referencedDeclaration": 754, + "src": "5297:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9855,32 +9855,32 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5289:25:6", + "src": "5289:25:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5273:41:6", + "src": "5273:41:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 997, + "id": 1078, "nodeType": "ExpressionStatement", - "src": "5273:41:6" + "src": "5273:41:8" }, { "body": { - "id": 1016, + "id": 1097, "nodeType": "Block", - "src": "5365:139:6", + "src": "5365:139:8", "statements": [ { "expression": { "argumentTypes": null, - "id": 1005, + "id": 1086, "isConstant": false, "isLValue": false, "isPure": false, @@ -9889,26 +9889,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1001, + "id": 1082, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "5379:5:6", + "referencedDeclaration": 1062, + "src": "5379:5:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1003, + "id": 1084, "indexExpression": { "argumentTypes": null, - "id": 1002, + "id": 1083, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 955, - "src": "5385:11:6", + "referencedDeclaration": 1036, + "src": "5385:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9919,7 +9919,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "5379:18:6", + "src": "5379:18:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9929,43 +9929,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1004, + "id": 1085, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "5400:13:6", + "referencedDeclaration": 1040, + "src": "5400:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5379:34:6", + "src": "5379:34:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1006, + "id": 1087, "nodeType": "ExpressionStatement", - "src": "5379:34:6" + "src": "5379:34:8" }, { "expression": { "argumentTypes": null, - "id": 1011, + "id": 1092, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1007, + "id": 1088, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "5427:13:6", + "referencedDeclaration": 1040, + "src": "5427:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9977,26 +9977,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1008, + "id": 1089, "name": "modules", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "5443:7:6", + "referencedDeclaration": 758, + "src": "5443:7:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1010, + "id": 1091, "indexExpression": { "argumentTypes": null, - "id": 1009, + "id": 1090, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "5451:13:6", + "referencedDeclaration": 1040, + "src": "5451:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10007,26 +10007,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5443:22:6", + "src": "5443:22:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5427:38:6", + "src": "5427:38:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1012, + "id": 1093, "nodeType": "ExpressionStatement", - "src": "5427:38:6" + "src": "5427:38:8" }, { "expression": { "argumentTypes": null, - "id": 1014, + "id": 1095, "isConstant": false, "isLValue": false, "isPure": false, @@ -10034,15 +10034,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5479:14:6", + "src": "5479:14:8", "subExpression": { "argumentTypes": null, - "id": 1013, + "id": 1094, "name": "moduleCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 955, - "src": "5479:11:6", + "referencedDeclaration": 1036, + "src": "5479:11:8", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10053,9 +10053,9 @@ "typeString": "uint256" } }, - "id": 1015, + "id": 1096, "nodeType": "ExpressionStatement", - "src": "5479:14:6" + "src": "5479:14:8" } ] }, @@ -10065,19 +10065,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1000, + "id": 1081, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 998, + "id": 1079, "name": "currentModule", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "5330:13:6", + "referencedDeclaration": 1040, + "src": "5330:13:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10087,50 +10087,50 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 999, + "id": 1080, "name": "SENTINEL_MODULES", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 673, - "src": "5347:16:6", + "referencedDeclaration": 754, + "src": "5347:16:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5330:33:6", + "src": "5330:33:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1017, + "id": 1098, "nodeType": "WhileStatement", - "src": "5324:180:6" + "src": "5324:180:8" }, { "expression": { "argumentTypes": null, - "id": 1018, + "id": 1099, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "5520:5:6", + "referencedDeclaration": 1062, + "src": "5520:5:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 953, - "id": 1019, + "functionReturnParameters": 1034, + "id": 1100, "nodeType": "Return", - "src": "5513:12:6" + "src": "5513:12:8" } ] }, "documentation": "@dev Returns array of modules.\n @return Array of modules.", - "id": 1021, + "id": 1102, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -10138,23 +10138,23 @@ "name": "getModules", "nodeType": "FunctionDefinition", "parameters": { - "id": 949, + "id": 1030, "nodeType": "ParameterList", "parameters": [], - "src": "4813:2:6" + "src": "4813:2:8" }, "payable": false, "returnParameters": { - "id": 953, + "id": 1034, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 952, + "id": 1033, "name": "", "nodeType": "VariableDeclaration", - "scope": 1021, - "src": "4861:9:6", + "scope": 1102, + "src": "4861:9:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10163,19 +10163,19 @@ }, "typeName": { "baseType": { - "id": 950, + "id": 1031, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4861:7:6", + "src": "4861:7:8", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 951, + "id": 1032, "length": null, "nodeType": "ArrayTypeName", - "src": "4861:9:6", + "src": "4861:9:8", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -10185,26 +10185,26 @@ "visibility": "internal" } ], - "src": "4860:11:6" + "src": "4860:11:8" }, - "scope": 1022, - "src": "4794:738:6", + "scope": 1103, + "src": "4794:738:8", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1023, - "src": "303:5231:6" + "scope": 1104, + "src": "303:5231:8" } ], - "src": "0:5535:6" + "src": "0:5535:8" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-20T07:57:27.009Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:56.481Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/MultiSend.json b/safe-contracts/build/contracts/MultiSend.json index 15475f34..03bb7f06 100644 --- a/safe-contracts/build/contracts/MultiSend.json +++ b/safe-contracts/build/contracts/MultiSend.json @@ -26,14 +26,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", "exportedSymbols": { "MultiSend": [ - 1840 + 1799 ] }, - "id": 1841, + "id": 1800, "nodeType": "SourceUnit", "nodes": [ { - "id": 1832, + "id": 1791, "literals": [ "solidity", "0.4", @@ -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": 1840, + "id": 1799, "linearizedBaseContracts": [ - 1840 + 1799 ], "name": "MultiSend", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1838, + "id": 1797, "nodeType": "Block", "src": "753:922:17", "statements": [ @@ -65,7 +65,7 @@ "externalReferences": [ { "transactions": { - "declaration": 1834, + "declaration": 1793, "isOffset": false, "isSlot": false, "src": "870:12:17", @@ -74,7 +74,7 @@ }, { "transactions": { - "declaration": 1834, + "declaration": 1793, "isOffset": false, "isSlot": false, "src": "993:12:17", @@ -83,7 +83,7 @@ }, { "transactions": { - "declaration": 1834, + "declaration": 1793, "isOffset": false, "isSlot": false, "src": "1047:12:17", @@ -92,7 +92,7 @@ }, { "transactions": { - "declaration": 1834, + "declaration": 1793, "isOffset": false, "isSlot": false, "src": "1188:12:17", @@ -101,7 +101,7 @@ }, { "transactions": { - "declaration": 1834, + "declaration": 1793, "isOffset": false, "isSlot": false, "src": "1115:12:17", @@ -110,7 +110,7 @@ }, { "transactions": { - "declaration": 1834, + "declaration": 1793, "isOffset": false, "isSlot": false, "src": "1249:12:17", @@ -118,7 +118,7 @@ } } ], - "id": 1837, + "id": 1796, "nodeType": "InlineAssembly", "operations": "{\n let length := mload(transactions)\n let i := 0x20\n for {\n }\n lt(i, length)\n {\n }\n {\n let operation := mload(add(transactions, i))\n let to := mload(add(transactions, add(i, 0x20)))\n let value := mload(add(transactions, add(i, 0x40)))\n let dataLength := mload(add(transactions, add(i, 0x80)))\n let data := add(transactions, add(i, 0xa0))\n let success := 0\n switch operation\n case 0 {\n success := call(gas(), to, value, data, dataLength, 0, 0)\n }\n case 1 {\n success := delegatecall(gas(), to, data, dataLength, 0, 0)\n }\n if eq(success, 0)\n {\n revert(0, 0)\n }\n i := add(i, add(0xa0, mul(div(add(dataLength, 0x1f), 0x20), 0x20)))\n }\n}", "src": "827:848:17" @@ -126,7 +126,7 @@ ] }, "documentation": "@dev Sends multiple transactions and reverts all if one fails.\n @param transactions Encoded transactions. Each transaction is encoded as a \n tuple(operation,address,uint256,bytes), where operation \n can be 0 for a call or 1 for a delegatecall. The bytes \n of all encoded transactions are concatenated to form the input.", - "id": 1839, + "id": 1798, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -134,15 +134,15 @@ "name": "multiSend", "nodeType": "FunctionDefinition", "parameters": { - "id": 1835, + "id": 1794, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1834, + "id": 1793, "name": "transactions", "nodeType": "VariableDeclaration", - "scope": 1839, + "scope": 1798, "src": "714:18:17", "stateVariable": false, "storageLocation": "default", @@ -151,7 +151,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1833, + "id": 1792, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "714:5:17", @@ -168,19 +168,19 @@ }, "payable": false, "returnParameters": { - "id": 1836, + "id": 1795, "nodeType": "ParameterList", "parameters": [], "src": "753:0:17" }, - "scope": 1840, + "scope": 1799, "src": "695:980:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1841, + "scope": 1800, "src": "253:1424:17" } ], @@ -190,14 +190,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSend.sol", "exportedSymbols": { "MultiSend": [ - 1840 + 1799 ] }, - "id": 1841, + "id": 1800, "nodeType": "SourceUnit", "nodes": [ { - "id": 1832, + "id": 1791, "literals": [ "solidity", "0.4", @@ -212,16 +212,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": 1840, + "id": 1799, "linearizedBaseContracts": [ - 1840 + 1799 ], "name": "MultiSend", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1838, + "id": 1797, "nodeType": "Block", "src": "753:922:17", "statements": [ @@ -229,7 +229,7 @@ "externalReferences": [ { "transactions": { - "declaration": 1834, + "declaration": 1793, "isOffset": false, "isSlot": false, "src": "870:12:17", @@ -238,7 +238,7 @@ }, { "transactions": { - "declaration": 1834, + "declaration": 1793, "isOffset": false, "isSlot": false, "src": "993:12:17", @@ -247,7 +247,7 @@ }, { "transactions": { - "declaration": 1834, + "declaration": 1793, "isOffset": false, "isSlot": false, "src": "1047:12:17", @@ -256,7 +256,7 @@ }, { "transactions": { - "declaration": 1834, + "declaration": 1793, "isOffset": false, "isSlot": false, "src": "1188:12:17", @@ -265,7 +265,7 @@ }, { "transactions": { - "declaration": 1834, + "declaration": 1793, "isOffset": false, "isSlot": false, "src": "1115:12:17", @@ -274,7 +274,7 @@ }, { "transactions": { - "declaration": 1834, + "declaration": 1793, "isOffset": false, "isSlot": false, "src": "1249:12:17", @@ -282,7 +282,7 @@ } } ], - "id": 1837, + "id": 1796, "nodeType": "InlineAssembly", "operations": "{\n let length := mload(transactions)\n let i := 0x20\n for {\n }\n lt(i, length)\n {\n }\n {\n let operation := mload(add(transactions, i))\n let to := mload(add(transactions, add(i, 0x20)))\n let value := mload(add(transactions, add(i, 0x40)))\n let dataLength := mload(add(transactions, add(i, 0x80)))\n let data := add(transactions, add(i, 0xa0))\n let success := 0\n switch operation\n case 0 {\n success := call(gas(), to, value, data, dataLength, 0, 0)\n }\n case 1 {\n success := delegatecall(gas(), to, data, dataLength, 0, 0)\n }\n if eq(success, 0)\n {\n revert(0, 0)\n }\n i := add(i, add(0xa0, mul(div(add(dataLength, 0x1f), 0x20), 0x20)))\n }\n}", "src": "827:848:17" @@ -290,7 +290,7 @@ ] }, "documentation": "@dev Sends multiple transactions and reverts all if one fails.\n @param transactions Encoded transactions. Each transaction is encoded as a \n tuple(operation,address,uint256,bytes), where operation \n can be 0 for a call or 1 for a delegatecall. The bytes \n of all encoded transactions are concatenated to form the input.", - "id": 1839, + "id": 1798, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -298,15 +298,15 @@ "name": "multiSend", "nodeType": "FunctionDefinition", "parameters": { - "id": 1835, + "id": 1794, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1834, + "id": 1793, "name": "transactions", "nodeType": "VariableDeclaration", - "scope": 1839, + "scope": 1798, "src": "714:18:17", "stateVariable": false, "storageLocation": "default", @@ -315,7 +315,7 @@ "typeString": "bytes" }, "typeName": { - "id": 1833, + "id": 1792, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "714:5:17", @@ -332,19 +332,19 @@ }, "payable": false, "returnParameters": { - "id": 1836, + "id": 1795, "nodeType": "ParameterList", "parameters": [], "src": "753:0:17" }, - "scope": 1840, + "scope": 1799, "src": "695:980:17", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 1841, + "scope": 1800, "src": "253:1424:17" } ], @@ -355,85 +355,13 @@ "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { - "4": { + "1530197641790": { "events": {}, "links": {}, - "address": "0xe94c33a523bf201e412f601eff906eec0b1d21f5", - "transactionHash": "0x1f04811d6fb97329f6e96a579587fe5a3abe9fe2f202d4b2e27adb78d3de1c48" - }, - "1529327661534": { - "events": {}, - "links": {}, - "address": "0xa2a1eb294e1191c1e374f9015a37db35c49e9f26", - "transactionHash": "0x5cd2551fce05a8b864a085616ee54449fdddd56dcdebf1019bebd0839c69ef5f" - }, - "1529333415702": { - "events": {}, - "links": {}, - "address": "0xaba1a0da223a2a5e04158bd80b2af7671e27e2c6", - "transactionHash": "0x6e7c0c3947a3a851738677ae63915781ce79fdfb0453030fc63bbcd346f2cf89" - }, - "1529652204341": { - "events": {}, - "links": {}, - "address": "0x2013688de17569d52fc4cd4fe5f18821d8b32b2a", - "transactionHash": "0x2d7f72a94ced345c372040faa1f51a51f3e8da27a02dd04b9eefef487de3ba05" - }, - "1529931780812": { - "events": {}, - "links": {}, - "address": "0xf0c06c152c06571cabff8461a693c5e530dfb8c0", - "transactionHash": "0x2d7f72a94ced345c372040faa1f51a51f3e8da27a02dd04b9eefef487de3ba05" - }, - "1529933005377": { - "events": {}, - "links": {}, - "address": "0x460f5b4c0928f3c8d3c94cfce2174d5d5acd1898", - "transactionHash": "0x2d7f72a94ced345c372040faa1f51a51f3e8da27a02dd04b9eefef487de3ba05" - }, - "1529934931891": { - "events": {}, - "links": {}, - "address": "0xbe0fe7850bbd415b9ac95a1f97cf1571ee896dcf", - "transactionHash": "0x2d7f72a94ced345c372040faa1f51a51f3e8da27a02dd04b9eefef487de3ba05" - }, - "1529935355957": { - "events": {}, - "links": {}, - "address": "0x28ac52e49a11d982f91241a0ac27c712a36ad365", - "transactionHash": "0x2d7f72a94ced345c372040faa1f51a51f3e8da27a02dd04b9eefef487de3ba05" - }, - "1529936204222": { - "events": {}, - "links": {}, - "address": "0x9837fc926e6243a13e5f0625cda44aebfba18a0b", - "transactionHash": "0x2d7f72a94ced345c372040faa1f51a51f3e8da27a02dd04b9eefef487de3ba05" - }, - "1529937280871": { - "events": {}, - "links": {}, - "address": "0x4bc9a967850e1719fd038373ecd366dfd4911166", - "transactionHash": "0x2d7f72a94ced345c372040faa1f51a51f3e8da27a02dd04b9eefef487de3ba05" - }, - "1529937637076": { - "events": {}, - "links": {}, - "address": "0xc686ebea8134690fc004798bcd83a9a17bdeaf64", - "transactionHash": "0x2d7f72a94ced345c372040faa1f51a51f3e8da27a02dd04b9eefef487de3ba05" - }, - "1529937890676": { - "events": {}, - "links": {}, - "address": "0x9317f067ff839b5898729eae57d02b81b35ff88a", - "transactionHash": "0x2d7f72a94ced345c372040faa1f51a51f3e8da27a02dd04b9eefef487de3ba05" - }, - "1530013596495": { - "events": {}, - "links": {}, - "address": "0x0e71065f6a7bb9d8018b251ea284ab3bd6e55653", - "transactionHash": "0x2d7f72a94ced345c372040faa1f51a51f3e8da27a02dd04b9eefef487de3ba05" + "address": "0x64a544e87eae5ce003a57054be49dc87d5a913ba", + "transactionHash": "0xb91516bf523fbce457f9571af6ff353eb99ac901637c14f64f4ad6ab614a4621" } }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-26T11:47:04.153Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:58.206Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/OwnerManager.json b/safe-contracts/build/contracts/OwnerManager.json index 475e288a..70ae0f3b 100644 --- a/safe-contracts/build/contracts/OwnerManager.json +++ b/safe-contracts/build/contracts/OwnerManager.json @@ -24,7 +24,7 @@ }, { "name": "_threshold", - "type": "uint8" + "type": "uint256" } ], "name": "addOwnerWithThreshold", @@ -46,7 +46,7 @@ }, { "name": "_threshold", - "type": "uint8" + "type": "uint256" } ], "name": "removeOwner", @@ -82,7 +82,7 @@ "inputs": [ { "name": "_threshold", - "type": "uint8" + "type": "uint256" } ], "name": "changeThreshold", @@ -98,7 +98,7 @@ "outputs": [ { "name": "", - "type": "uint8" + "type": "uint256" } ], "payable": false, @@ -139,40 +139,40 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506116f7806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f54bf6e1461009357806386040aa9146100ee5780638cff63551461015e578063a0e67e2b146101b5578063b7f3358d14610221578063b91a667f14610251578063e318b52b146102a1578063e75235b814610324575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610355565b604051808215151515815260200191505060405180910390f35b3480156100fa57600080fd5b5061015c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506103d6565b005b34801561016a57600080fd5b506101736108bc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c157600080fd5b506101ca6108c1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561020d5780820151818401526020810190506101f2565b505050509050019250505060405180910390f35b34801561022d57600080fd5b5061024f600480360381019080803560ff169060200190929190505050610a5a565b005b34801561025d57600080fd5b5061029f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610c75565b005b3480156102ad57600080fd5b50610322600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061107a565b005b34801561033057600080fd5b506103396116c1565b604051808260ff1660ff16815260200191505060405180910390f35b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561049f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ff16600180540310151515610544576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156105985750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561060c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610733576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008154809291906001900391905055508060ff166002541415156108b7576108b681610a5a565b5b505050565b600181565b6060806000806001546040519080825280602002602001820160405280156108f85781602001602082028038833980820191505090505b50925060009150600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610a51578083838151811015156109a757fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610962565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001548160ff1611151515610bc6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018160ff1610151515610c68576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ff1660028190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610d925750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610e06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610ef2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055508060ff166002541415156110765761107581610a5a565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156111975750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156112f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561134b5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156113bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60006002549050905600a165627a7a72305820ab89c9f36885e8fc69145ea0fcbca9fe59b42935c3b4603105f10c7cdb27e0680029", - "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f54bf6e1461009357806386040aa9146100ee5780638cff63551461015e578063a0e67e2b146101b5578063b7f3358d14610221578063b91a667f14610251578063e318b52b146102a1578063e75235b814610324575b600080fd5b34801561009f57600080fd5b506100d4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610355565b604051808215151515815260200191505060405180910390f35b3480156100fa57600080fd5b5061015c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff1690602001909291905050506103d6565b005b34801561016a57600080fd5b506101736108bc565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c157600080fd5b506101ca6108c1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561020d5780820151818401526020810190506101f2565b505050509050019250505060405180910390f35b34801561022d57600080fd5b5061024f600480360381019080803560ff169060200190929190505050610a5a565b005b34801561025d57600080fd5b5061029f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190505050610c75565b005b3480156102ad57600080fd5b50610322600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061107a565b005b34801561033057600080fd5b506103396116c1565b604051808260ff1660ff16815260200191505060405180910390f35b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561049f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ff16600180540310151515610544576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156105985750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b151561060c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610733576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160008154809291906001900391905055508060ff166002541415156108b7576108b681610a5a565b5b505050565b600181565b6060806000806001546040519080825280602002602001820160405280156108f85781602001602082028038833980820191505090505b50925060009150600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610a51578083838151811015156109a757fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610962565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610b23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001548160ff1611151515610bc6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60018160ff1610151515610c68576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060ff1660028190555050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610d3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610d925750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610e06576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610ef2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055508060ff166002541415156110765761107581610a5a565b5b5050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141580156111975750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b151561120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156112f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff161415801561134b5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156113bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156114e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b60006002549050905600a165627a7a72305820ab89c9f36885e8fc69145ea0fcbca9fe59b42935c3b4603105f10c7cdb27e0680029", - "sourceMap": "240:6041:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;240:6041:7;;;;;;;", - "deployedSourceMap": "240:6041:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5610:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5610:129:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3026:781;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3026:781:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;287:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:7;;;;;;;;;;;;;;;;;;;;;;;;;;;5821:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5821: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;5821:458:7;;;;;;;;;;;;;;;;;5081:397;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5081:397:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;2091:593;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2091:593:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4141:751;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4141:751:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5484:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5484:120:7;;;;;;;;;;;;;;;;;;;;;;;;;;;5610:129;5687:4;5731:1;5714:6;:13;5721:5;5714:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5707:25;;5610:129;;;:::o;3026:781::-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3250:10:7;3232:28;;3245:1;3232:10;;:14;:28;;3224:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3425:1;3416:5;:10;;;;:38;;;;;337:3;3430:24;;:5;:24;;;;3416:38;3408:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3528:5;3507:26;;:6;:17;3514:9;3507:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3499:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3606:6;:13;3613:5;3606:13;;;;;;;;;;;;;;;;;;;;;;;;;3586:6;:17;3593:9;3586:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3645:1;3629:6;:13;3636:5;3629:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3656:10;;:12;;;;;;;;;;;;;;3749:10;3736:23;;:9;;:23;;3732:68;;;3773:27;3789:10;3773:15;:27::i;:::-;3732:68;3026:781;;;:::o;287:54::-;337:3;287:54;:::o;5821:458::-;5887:9;5912:22;6006:13;6033:20;5951:10;;5937: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;5937:25:7;;;;5912:50;;6022:1;6006:17;;6056:6;:23;337:3;6056:23;;;;;;;;;;;;;;;;;;;;;;;;;6033:46;;6089:162;337:3;6095:31;;:12;:31;;;;6089:162;;;6157:12;6142:5;6148;6142:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6198:6;:20;6205:12;6198:20;;;;;;;;;;;;;;;;;;;;;;;;;6183:35;;6232:8;;;;;;;6089:162;;;6267:5;6260:12;;5821:458;;;;:::o;5081:397::-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5263:10:7;;5249;:24;;;;5241:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5397:1;5383:10;:15;;;;5375:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5461:10;5449:22;;:9;:22;;;;5081:397;:::o;2091:593::-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2261:1:7;2252:5;:10;;;;:38;;;;;337:3;2266:24;;:5;:24;;;;2252:38;2244:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2400:1;2383:6;:13;2390:5;2383:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2375:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2459:6;:23;337:3;2459:23;;;;;;;;;;;;;;;;;;;;;;;;;2443:6;:13;2450:5;2443:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2518:5;2492:6;:23;337:3;2492:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2533:10;;:12;;;;;;;;;;;;;2626:10;2613:23;;:9;;:23;;2609:68;;;2650:27;2666:10;2650:15;:27::i;:::-;2609:68;2091:593;;:::o;4141:751::-;244:4:8;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4324:1:7;4312:8;:13;;;;:44;;;;;337:3;4329:27;;:8;:27;;;;4312:44;4304:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4469:1;4449:6;:16;4456:8;4449:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4441:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4615:1;4603:8;:13;;;;:44;;;;;337:3;4620:27;;:8;:27;;;;4603:44;4595:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4721:8;4700:29;;:6;:17;4707:9;4700:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4692:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4801:6;:16;4808:8;4801:16;;;;;;;;;;;;;;;;;;;;;;;;;4782:6;:16;4789:8;4782:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4847:8;4827:6;:17;4834:9;4827:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4884:1;4865:6;:16;4872:8;4865:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4141:751;;;:::o;5484:120::-;5553:5;5587:9;;5574:23;;5484:120;:::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 uint256 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, \"Owners have already been setup\");\n // Validate that threshold is smaller than number of added owners.\n require(_threshold <= _owners.length, \"Threshold cannot exceed owner count\");\n // There has to be at least one Safe owner.\n require(_threshold >= 1, \"Threshold needs to be greater than 0\");\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, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[owner] == 0, \"Duplicate owner address provided\");\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, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[owner] == 0, \"Address is already an owner\");\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, \"New owner count needs to be larger than new threshold\");\n // Validate owner address and check that it corresponds to owner index.\n require(owner != 0 && owner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n require(owners[prevOwner] == owner, \"Invalid prevOwner, owner pair provided\");\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, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[newOwner] == 0, \"Address is already an owner\");\n // Validate oldOwner address and check that it corresponds to owner index.\n require(oldOwner != 0 && oldOwner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n require(owners[prevOwner] == oldOwner, \"Invalid prevOwner, owner pair provided\");\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, \"Threshold cannot exceed owner count\");\n // There has to be at least one Safe owner.\n require(_threshold >= 1, \"Threshold needs to be greater than 0\");\n threshold = _threshold;\n }\n\n function getThreshold()\n public\n view\n returns (uint8)\n {\n return uint8(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": "0x608060405234801561001057600080fd5b506116d6806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100935780632f54bf6e146100e0578063694e80c31461013b5780638cff635514610168578063a0e67e2b146101bf578063e318b52b1461022b578063e75235b8146102ae578063f8dc5dd9146102d9575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610346565b005b3480156100ec57600080fd5b50610121600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610748565b604051808215151515815260200191505060405180910390f35b34801561014757600080fd5b50610166600480360381019080803590602001909291905050506107c9565b005b34801561017457600080fd5b5061017d6109db565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cb57600080fd5b506101d46109e0565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102175780820151818401526020810190506101fc565b505050509050019250505060405180910390f35b34801561023757600080fd5b506102ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b79565b005b3480156102ba57600080fd5b506102c36111c0565b6040518082815260200191505060405180910390f35b3480156102e557600080fd5b50610344600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111ca565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561040f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156104635750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156104d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156105c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055508060025414151561074457610743816107c9565b5b5050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001548111151515610932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600181101515156109d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060028190555050565b600181565b606080600080600154604051908082528060200260200182016040528015610a175781602001602082028038833980820191505090505b50925060009150600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610b7057808383815181101515610ac657fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610a81565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610c965750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610df6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610e4a5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610ebe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610fe5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600254905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600180540310151515611335576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156113895750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156113fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611524576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016000815480929190600190039190505550806002541415156116a5576116a4816107c9565b5b5050505600a165627a7a72305820756a32e78a71f45d31aef6b1af48c513f6aec9f08b5cb5f04cb08c230c3a41ec0029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630d582f13146100935780632f54bf6e146100e0578063694e80c31461013b5780638cff635514610168578063a0e67e2b146101bf578063e318b52b1461022b578063e75235b8146102ae578063f8dc5dd9146102d9575b600080fd5b34801561009f57600080fd5b506100de600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610346565b005b3480156100ec57600080fd5b50610121600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610748565b604051808215151515815260200191505060405180910390f35b34801561014757600080fd5b50610166600480360381019080803590602001909291905050506107c9565b005b34801561017457600080fd5b5061017d6109db565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101cb57600080fd5b506101d46109e0565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156102175780820151818401526020810190506101fc565b505050509050019250505060405180910390f35b34801561023757600080fd5b506102ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b79565b005b3480156102ba57600080fd5b506102c36111c0565b6040518082815260200191505060405180910390f35b3480156102e557600080fd5b50610344600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111ca565b005b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561040f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156104635750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156104d7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156105c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600081548092919060010191905055508060025414151561074457610743816107c9565b5b5050565b6000806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610892576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001548111151515610932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f81526020017f756e74000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600181101515156109d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f5468726573686f6c64206e6565647320746f206265206772656174657220746881526020017f616e20300000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8060028190555050565b600181565b606080600080600154604051908082528060200260200182016040528015610a175781602001602082028038833980820191505090505b50925060009150600080600173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505b600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515610b7057808383815181101515610ac657fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508180600101925050610a81565b82935050505090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610c42576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614158015610c965750600173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1515610d0a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610df6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4164647265737320697320616c726561647920616e206f776e6572000000000081525060200191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1614158015610e4a5750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1515610ebe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610fe5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000600254905090565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207481526020017f68697320636f6e7472616374000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600180540310151515611335576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001807f4e6577206f776e657220636f756e74206e6565647320746f206265206c61726781526020017f6572207468616e206e6577207468726573686f6c64000000000000000000000081525060400191505060405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16141580156113895750600173ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15156113fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f496e76616c6964206f776e657220616464726573732070726f7669646564000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611524576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f496e76616c696420707265764f776e65722c206f776e6572207061697220707281526020017f6f7669646564000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016000815480929190600190039190505550806002541415156116a5576116a4816107c9565b5b5050505600a165627a7a72305820756a32e78a71f45d31aef6b1af48c513f6aec9f08b5cb5f04cb08c230c3a41ec0029", + "sourceMap": "240:6044:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;240:6044:9;;;;;;;", + "deployedSourceMap": "240:6044:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2093:595:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5613:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5613:129:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5087:399;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5087:399:9;;;;;;;;;;;;;;;;;;;;;;;;;;287:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;287:54:9;;;;;;;;;;;;;;;;;;;;;;;;;;;5824:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5824: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;5824:458:9;;;;;;;;;;;;;;;;;4147:751;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4147:751:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5492:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5492:115:9;;;;;;;;;;;;;;;;;;;;;;;3030:783;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3030:783:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:595;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2265:1:9;2256:5;:10;;;;:38;;;;;337:3;2270:24;;:5;:24;;;;2256:38;2248:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2404:1;2387:6;:13;2394:5;2387:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;2379:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2463:6;:23;337:3;2463:23;;;;;;;;;;;;;;;;;;;;;;;;;2447:6;:13;2454:5;2447:13;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2522:5;2496:6;:23;337:3;2496:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;2537:10;;:12;;;;;;;;;;;;;2630:10;2617:9;;:23;;2613:68;;;2654:27;2670:10;2654:15;:27::i;:::-;2613:68;2093:595;;:::o;5613:129::-;5690:4;5734:1;5717:6;:13;5724:5;5717:13;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;;5710:25;;5613:129;;;:::o;5087:399::-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5271:10:9;;5257;:24;;5249:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5405:1;5391:10;:15;;5383:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:10;5457:9;:22;;;;5087:399;:::o;287:54::-;337:3;287:54;:::o;5824:458::-;5890:9;5915:22;6009:13;6036:20;5954:10;;5940: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;5940:25:9;;;;5915:50;;6025:1;6009:17;;6059:6;:23;337:3;6059:23;;;;;;;;;;;;;;;;;;;;;;;;;6036:46;;6092:162;337:3;6098:31;;:12;:31;;;;6092:162;;;6160:12;6145:5;6151;6145:12;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;6201:6;:20;6208:12;6201:20;;;;;;;;;;;;;;;;;;;;;;;;;6186:35;;6235:8;;;;;;;6092:162;;;6270:5;6263:12;;5824:458;;;;:::o;4147:751::-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4330:1:9;4318:8;:13;;;;:44;;;;;337:3;4335:27;;:8;:27;;;;4318:44;4310:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4475:1;4455:6;:16;4462:8;4455:16;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;4447:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4621:1;4609:8;:13;;;;:44;;;;;337:3;4626:27;;:8;:27;;;;4609:44;4601:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4727:8;4706:29;;:6;:17;4713:9;4706:17;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;4698:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4807:6;:16;4814:8;4807:16;;;;;;;;;;;;;;;;;;;;;;;;;4788:6;:16;4795:8;4788:16;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4853:8;4833:6;:17;4840:9;4833:17;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;4890:1;4871:6;:16;4878:8;4871:16;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4147:751;;;:::o;5492:115::-;5561:7;5591:9;;5584:16;;5492:115;:::o;3030:783::-;244:4:14;222:27;;:10;:27;;;214:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3256:10:9;3251:1;3238:10;;:14;:28;;3230:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3431:1;3422:5;:10;;;;:38;;;;;337:3;3436:24;;:5;:24;;;;3422:38;3414:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3534:5;3513:26;;:6;:17;3520:9;3513:17;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;3505:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:6;:13;3619:5;3612:13;;;;;;;;;;;;;;;;;;;;;;;;;3592:6;:17;3599:9;3592:17;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;3651:1;3635:6;:13;3642:5;3635:13;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;3662:10;;:12;;;;;;;;;;;;;;3755:10;3742:9;;:23;;3738:68;;;3779:27;3795:10;3779:15;:27::i;:::-;3738:68;3030:783;;;:::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 uint256 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, uint256 _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, \"Owners have already been setup\");\n // Validate that threshold is smaller than number of added owners.\n require(_threshold <= _owners.length, \"Threshold cannot exceed owner count\");\n // There has to be at least one Safe owner.\n require(_threshold >= 1, \"Threshold needs to be greater than 0\");\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, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[owner] == 0, \"Duplicate owner address provided\");\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, uint256 _threshold)\n public\n authorized\n {\n // Owner address cannot be null.\n require(owner != 0 && owner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[owner] == 0, \"Address is already an owner\");\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, uint256 _threshold)\n public\n authorized\n {\n // Only allow to remove an owner, if threshold can still be reached.\n require(ownerCount - 1 >= _threshold, \"New owner count needs to be larger than new threshold\");\n // Validate owner address and check that it corresponds to owner index.\n require(owner != 0 && owner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n require(owners[prevOwner] == owner, \"Invalid prevOwner, owner pair provided\");\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, \"Invalid owner address provided\");\n // No duplicate owners allowed.\n require(owners[newOwner] == 0, \"Address is already an owner\");\n // Validate oldOwner address and check that it corresponds to owner index.\n require(oldOwner != 0 && oldOwner != SENTINEL_OWNERS, \"Invalid owner address provided\");\n require(owners[prevOwner] == oldOwner, \"Invalid prevOwner, owner pair provided\");\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(uint256 _threshold)\n public\n authorized\n {\n // Validate that threshold is smaller than number of owners.\n require(_threshold <= ownerCount, \"Threshold cannot exceed owner count\");\n // There has to be at least one Safe owner.\n require(_threshold >= 1, \"Threshold needs to be greater than 0\");\n threshold = _threshold;\n }\n\n function getThreshold()\n public\n view\n returns (uint256)\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": [ - 1432 + 1511 ] }, - "id": 1433, + "id": 1512, "nodeType": "SourceUnit", "nodes": [ { - "id": 1024, + "id": 1105, "literals": [ "solidity", "0.4", ".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": 1025, + "id": 1106, "nodeType": "ImportDirective", - "scope": 1433, - "sourceUnit": 1450, - "src": "24:30:7", + "scope": 1512, + "sourceUnit": 1689, + "src": "24:30:9", "symbolAliases": [], "unitAlias": "" }, @@ -182,42 +182,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1026, + "id": 1107, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1449, - "src": "265:14:7", + "referencedDeclaration": 1688, + "src": "265:14:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1449", + "typeIdentifier": "t_contract$_SelfAuthorized_$1688", "typeString": "contract SelfAuthorized" } }, - "id": 1027, + "id": 1108, "nodeType": "InheritanceSpecifier", - "src": "265:14:7" + "src": "265:14:9" } ], "contractDependencies": [ - 1449 + 1688 ], "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": 1432, + "id": 1511, "linearizedBaseContracts": [ - 1432, - 1449 + 1511, + 1688 ], "name": "OwnerManager", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 1032, + "id": 1113, "name": "SENTINEL_OWNERS", "nodeType": "VariableDeclaration", - "scope": 1432, - "src": "287:54:7", + "scope": 1511, + "src": "287:54:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -225,10 +225,10 @@ "typeString": "address" }, "typeName": { - "id": 1028, + "id": 1109, "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": 1030, + "id": 1111, "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": 1029, + "id": 1110, "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": 1031, + "id": 1112, "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": 1036, + "id": 1117, "name": "owners", "nodeType": "VariableDeclaration", - "scope": 1432, - "src": "348:43:7", + "scope": 1511, + "src": "348:43:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -306,28 +306,28 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 1035, + "id": 1116, "keyType": { - "id": 1033, + "id": 1114, "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": 1034, + "id": 1115, "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": 1038, + "id": 1119, "name": "ownerCount", "nodeType": "VariableDeclaration", - "scope": 1432, - "src": "397:18:7", + "scope": 1511, + "src": "397:18:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -351,10 +351,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1037, + "id": 1118, "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": 1040, + "id": 1121, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 1432, - "src": "421:26:7", + "scope": 1511, + "src": "421:26:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -377,10 +377,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1039, + "id": 1120, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "421:7:7", + "src": "421:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -391,9 +391,9 @@ }, { "body": { - "id": 1138, + "id": 1219, "nodeType": "Block", - "src": "722:1129:7", + "src": "724:1129:9", "statements": [ { "expression": { @@ -405,19 +405,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1051, + "id": 1132, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1049, + "id": 1130, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "864:9:7", + "referencedDeclaration": 1121, + "src": "866:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -428,14 +428,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1050, + "id": 1131, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "877:1:7", + "src": "879:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -443,7 +443,7 @@ }, "value": "0" }, - "src": "864:14:7", + "src": "866:14:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -452,14 +452,14 @@ { "argumentTypes": null, "hexValue": "4f776e657273206861766520616c7265616479206265656e207365747570", - "id": 1052, + "id": 1133, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "880:32:7", + "src": "882:32:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9a45ae898fbe2bd07a0b33b5a6c421f76198e9deb66843b8d827b0b9e4a16f86", @@ -479,21 +479,21 @@ "typeString": "literal_string \"Owners have already been setup\"" } ], - "id": 1048, + "id": 1129, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "856:7:7", + "referencedDeclaration": 2663, + "src": "858:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1053, + "id": 1134, "isConstant": false, "isLValue": false, "isPure": false, @@ -501,15 +501,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "856:57:7", + "src": "858:57:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1054, + "id": 1135, "nodeType": "ExpressionStatement", - "src": "856:57:7" + "src": "858:57:9" }, { "expression": { @@ -521,22 +521,22 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1059, + "id": 1140, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1056, + "id": 1137, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1045, - "src": "1006:10:7", + "referencedDeclaration": 1126, + "src": "1008:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", @@ -545,18 +545,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1057, + "id": 1138, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "1020:7:7", + "referencedDeclaration": 1124, + "src": "1022:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1058, + "id": 1139, "isConstant": false, "isLValue": false, "isPure": false, @@ -564,13 +564,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1020:14:7", + "src": "1022:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1006:28:7", + "src": "1008:28:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -579,14 +579,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1060, + "id": 1141, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1036:37:7", + "src": "1038:37:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", @@ -606,21 +606,21 @@ "typeString": "literal_string \"Threshold cannot exceed owner count\"" } ], - "id": 1055, + "id": 1136, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "998:7:7", + "referencedDeclaration": 2663, + "src": "1000:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1061, + "id": 1142, "isConstant": false, "isLValue": false, "isPure": false, @@ -628,15 +628,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "998:76:7", + "src": "1000:76:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1062, + "id": 1143, "nodeType": "ExpressionStatement", - "src": "998:76:7" + "src": "1000:76:9" }, { "expression": { @@ -645,25 +645,25 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 1066, + "id": 1147, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1064, + "id": 1145, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1045, - "src": "1144:10:7", + "referencedDeclaration": 1126, + "src": "1146:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", @@ -671,14 +671,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1065, + "id": 1146, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1158:1:7", + "src": "1160:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -686,7 +686,7 @@ }, "value": "1" }, - "src": "1144:15:7", + "src": "1146:15:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -695,14 +695,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1067, + "id": 1148, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1161:38:7", + "src": "1163:38:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", @@ -722,21 +722,21 @@ "typeString": "literal_string \"Threshold needs to be greater than 0\"" } ], - "id": 1063, + "id": 1144, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1136:7:7", + "referencedDeclaration": 2663, + "src": "1138:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1068, + "id": 1149, "isConstant": false, "isLValue": false, "isPure": false, @@ -744,28 +744,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1136:64:7", + "src": "1138:64:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1069, + "id": 1150, "nodeType": "ExpressionStatement", - "src": "1136:64:7" + "src": "1138:64:9" }, { "assignments": [ - 1071 + 1152 ], "declarations": [ { "constant": false, - "id": 1071, + "id": 1152, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "1247:20:7", + "scope": 1220, + "src": "1249:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -773,10 +773,10 @@ "typeString": "address" }, "typeName": { - "id": 1070, + "id": 1151, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1247:7:7", + "src": "1249:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -786,41 +786,41 @@ "visibility": "internal" } ], - "id": 1073, + "id": 1154, "initialValue": { "argumentTypes": null, - "id": 1072, + "id": 1153, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "1270:15:7", + "referencedDeclaration": 1113, + "src": "1272:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1247:38:7" + "src": "1249:38:9" }, { "body": { - "id": 1121, + "id": 1202, "nodeType": "Block", - "src": "1340:388:7", + "src": "1342:388:9", "statements": [ { "assignments": [ - 1086 + 1167 ], "declarations": [ { "constant": false, - "id": 1086, + "id": 1167, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "1399:13:7", + "scope": 1220, + "src": "1401:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -828,10 +828,10 @@ "typeString": "address" }, "typeName": { - "id": 1085, + "id": 1166, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1399:7:7", + "src": "1401:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -841,31 +841,31 @@ "visibility": "internal" } ], - "id": 1090, + "id": 1171, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1087, + "id": 1168, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "1415:7:7", + "referencedDeclaration": 1124, + "src": "1417:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1089, + "id": 1170, "indexExpression": { "argumentTypes": null, - "id": 1088, + "id": 1169, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "1423:1:7", + "referencedDeclaration": 1156, + "src": "1425:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -876,14 +876,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1415:10:7", + "src": "1417:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1399:26:7" + "src": "1401:26:9" }, { "expression": { @@ -895,7 +895,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1098, + "id": 1179, "isConstant": false, "isLValue": false, "isPure": false, @@ -906,19 +906,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1094, + "id": 1175, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1092, + "id": 1173, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "1447:5:7", + "referencedDeclaration": 1167, + "src": "1449:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -929,14 +929,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1093, + "id": 1174, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1456:1:7", + "src": "1458:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -944,7 +944,7 @@ }, "value": "0" }, - "src": "1447:10:7", + "src": "1449:10:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -958,19 +958,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1097, + "id": 1178, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1095, + "id": 1176, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "1461:5:7", + "referencedDeclaration": 1167, + "src": "1463:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -980,24 +980,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1096, + "id": 1177, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "1470:15:7", + "referencedDeclaration": 1113, + "src": "1472:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1461:24:7", + "src": "1463:24:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1447:38:7", + "src": "1449:38:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1006,14 +1006,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1099, + "id": 1180, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1487:32:7", + "src": "1489:32:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -1033,21 +1033,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1091, + "id": 1172, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1439:7:7", + "referencedDeclaration": 2663, + "src": "1441:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1100, + "id": 1181, "isConstant": false, "isLValue": false, "isPure": false, @@ -1055,15 +1055,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1439:81:7", + "src": "1441:81:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1101, + "id": 1182, "nodeType": "ExpressionStatement", - "src": "1439:81:7" + "src": "1441:81:9" }, { "expression": { @@ -1075,7 +1075,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1107, + "id": 1188, "isConstant": false, "isLValue": false, "isPure": false, @@ -1084,26 +1084,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1103, + "id": 1184, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "1586:6:7", + "referencedDeclaration": 1117, + "src": "1588:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1105, + "id": 1186, "indexExpression": { "argumentTypes": null, - "id": 1104, + "id": 1185, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "1593:5:7", + "referencedDeclaration": 1167, + "src": "1595:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1114,7 +1114,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1586:13:7", + "src": "1588:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1125,14 +1125,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1106, + "id": 1187, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1603:1:7", + "src": "1605:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1140,7 +1140,7 @@ }, "value": "0" }, - "src": "1586:18:7", + "src": "1588:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1149,14 +1149,14 @@ { "argumentTypes": null, "hexValue": "4475706c6963617465206f776e657220616464726573732070726f7669646564", - "id": 1108, + "id": 1189, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1606:34:7", + "src": "1608:34:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a803fa289679098e38a7f1f6fe43056918c5ab5af07441cb8db77b949c165ca1", @@ -1176,21 +1176,21 @@ "typeString": "literal_string \"Duplicate owner address provided\"" } ], - "id": 1102, + "id": 1183, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1578:7:7", + "referencedDeclaration": 2663, + "src": "1580:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1109, + "id": 1190, "isConstant": false, "isLValue": false, "isPure": false, @@ -1198,20 +1198,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1578:63:7", + "src": "1580:63:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1110, + "id": 1191, "nodeType": "ExpressionStatement", - "src": "1578:63:7" + "src": "1580:63:9" }, { "expression": { "argumentTypes": null, - "id": 1115, + "id": 1196, "isConstant": false, "isLValue": false, "isPure": false, @@ -1220,26 +1220,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1111, + "id": 1192, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "1655:6:7", + "referencedDeclaration": 1117, + "src": "1657:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1113, + "id": 1194, "indexExpression": { "argumentTypes": null, - "id": 1112, + "id": 1193, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "1662:12:7", + "referencedDeclaration": 1152, + "src": "1664:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1250,7 +1250,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1655:20:7", + "src": "1657:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1260,43 +1260,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1114, + "id": 1195, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "1678:5:7", + "referencedDeclaration": 1167, + "src": "1680:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1655:28:7", + "src": "1657:28:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1116, + "id": 1197, "nodeType": "ExpressionStatement", - "src": "1655:28:7" + "src": "1657:28:9" }, { "expression": { "argumentTypes": null, - "id": 1119, + "id": 1200, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1117, + "id": 1198, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "1697:12:7", + "referencedDeclaration": 1152, + "src": "1699:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1306,26 +1306,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1118, + "id": 1199, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "1712:5:7", + "referencedDeclaration": 1167, + "src": "1714:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1697:20:7", + "src": "1699:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1120, + "id": 1201, "nodeType": "ExpressionStatement", - "src": "1697:20:7" + "src": "1699:20:9" } ] }, @@ -1335,19 +1335,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1081, + "id": 1162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1078, + "id": 1159, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "1315:1:7", + "referencedDeclaration": 1156, + "src": "1317:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1359,18 +1359,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1079, + "id": 1160, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "1319:7:7", + "referencedDeclaration": 1124, + "src": "1321:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1080, + "id": 1161, "isConstant": false, "isLValue": false, "isPure": false, @@ -1378,31 +1378,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1319:14:7", + "src": "1321:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1315:18:7", + "src": "1317:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1122, + "id": 1203, "initializationExpression": { "assignments": [ - 1075 + 1156 ], "declarations": [ { "constant": false, - "id": 1075, + "id": 1156, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "1300:9:7", + "scope": 1220, + "src": "1302:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1410,10 +1410,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1074, + "id": 1155, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1300:7:7", + "src": "1302:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1423,18 +1423,18 @@ "visibility": "internal" } ], - "id": 1077, + "id": 1158, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1076, + "id": 1157, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1312:1:7", + "src": "1314:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1443,12 +1443,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1300:13:7" + "src": "1302:13:9" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1083, + "id": 1164, "isConstant": false, "isLValue": false, "isPure": false, @@ -1456,15 +1456,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1335:3:7", + "src": "1337:3:9", "subExpression": { "argumentTypes": null, - "id": 1082, + "id": 1163, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "1335:1:7", + "referencedDeclaration": 1156, + "src": "1337:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1475,17 +1475,17 @@ "typeString": "uint256" } }, - "id": 1084, + "id": 1165, "nodeType": "ExpressionStatement", - "src": "1335:3:7" + "src": "1337:3:9" }, "nodeType": "ForStatement", - "src": "1295:433:7" + "src": "1297:433:9" }, { "expression": { "argumentTypes": null, - "id": 1127, + "id": 1208, "isConstant": false, "isLValue": false, "isPure": false, @@ -1494,26 +1494,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1123, + "id": 1204, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "1737:6:7", + "referencedDeclaration": 1117, + "src": "1739:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1125, + "id": 1206, "indexExpression": { "argumentTypes": null, - "id": 1124, + "id": 1205, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "1744:12:7", + "referencedDeclaration": 1152, + "src": "1746:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1524,7 +1524,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1737:20:7", + "src": "1739:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1534,43 +1534,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1126, + "id": 1207, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "1760:15:7", + "referencedDeclaration": 1113, + "src": "1762:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1737:38:7", + "src": "1739:38:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1128, + "id": 1209, "nodeType": "ExpressionStatement", - "src": "1737:38:7" + "src": "1739:38:9" }, { "expression": { "argumentTypes": null, - "id": 1132, + "id": 1213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1129, + "id": 1210, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1038, - "src": "1785:10:7", + "referencedDeclaration": 1119, + "src": "1787:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1582,18 +1582,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1130, + "id": 1211, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "1798:7:7", + "referencedDeclaration": 1124, + "src": "1800:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1131, + "id": 1212, "isConstant": false, "isLValue": false, "isPure": false, @@ -1601,38 +1601,38 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1798:14:7", + "src": "1800:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1785:27:7", + "src": "1787:27:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1133, + "id": 1214, "nodeType": "ExpressionStatement", - "src": "1785:27:7" + "src": "1787:27:9" }, { "expression": { "argumentTypes": null, - "id": 1136, + "id": 1217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1134, + "id": 1215, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "1822:9:7", + "referencedDeclaration": 1121, + "src": "1824:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1642,31 +1642,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1135, + "id": 1216, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1045, - "src": "1834:10:7", + "referencedDeclaration": 1126, + "src": "1836:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "1822:22:7", + "src": "1824:22:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1137, + "id": 1218, "nodeType": "ExpressionStatement", - "src": "1822:22:7" + "src": "1824: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": 1139, + "id": 1220, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1674,16 +1674,16 @@ "name": "setupOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 1046, + "id": 1127, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1043, + "id": 1124, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "664:17:7", + "scope": 1220, + "src": "664:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1692,19 +1692,19 @@ }, "typeName": { "baseType": { - "id": 1041, + "id": 1122, "name": "address", "nodeType": "ElementaryTypeName", - "src": "664:7:7", + "src": "664:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1042, + "id": 1123, "length": null, "nodeType": "ArrayTypeName", - "src": "664:9:7", + "src": "664:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1715,51 +1715,51 @@ }, { "constant": false, - "id": 1045, + "id": 1126, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "683:16:7", + "scope": 1220, + "src": "683:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1044, - "name": "uint8", + "id": 1125, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "683:5:7", + "src": "683:7:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "663:37:7" + "src": "663:39:9" }, "payable": false, "returnParameters": { - "id": 1047, + "id": 1128, "nodeType": "ParameterList", "parameters": [], - "src": "722:0:7" + "src": "724:0:9" }, - "scope": 1432, - "src": "643:1208:7", + "scope": 1511, + "src": "643:1210:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1193, + "id": 1274, "nodeType": "Block", - "src": "2193:491:7", + "src": "2197:491:9", "statements": [ { "expression": { @@ -1771,7 +1771,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1155, + "id": 1236, "isConstant": false, "isLValue": false, "isPure": false, @@ -1782,19 +1782,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1151, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1149, + "id": 1230, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "2252:5:7", + "referencedDeclaration": 1222, + "src": "2256:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1805,14 +1805,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1150, + "id": 1231, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2261:1:7", + "src": "2265:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1820,7 +1820,7 @@ }, "value": "0" }, - "src": "2252:10:7", + "src": "2256:10:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1834,19 +1834,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1154, + "id": 1235, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1152, + "id": 1233, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "2266:5:7", + "referencedDeclaration": 1222, + "src": "2270:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1856,24 +1856,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1153, + "id": 1234, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "2275:15:7", + "referencedDeclaration": 1113, + "src": "2279:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2266:24:7", + "src": "2270:24:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2252:38:7", + "src": "2256:38:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1882,14 +1882,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1156, + "id": 1237, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2292:32:7", + "src": "2296:32:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -1909,21 +1909,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1148, + "id": 1229, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2244:7:7", + "referencedDeclaration": 2663, + "src": "2248:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1157, + "id": 1238, "isConstant": false, "isLValue": false, "isPure": false, @@ -1931,15 +1931,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2244:81:7", + "src": "2248:81:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1158, + "id": 1239, "nodeType": "ExpressionStatement", - "src": "2244:81:7" + "src": "2248:81:9" }, { "expression": { @@ -1951,7 +1951,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1164, + "id": 1245, "isConstant": false, "isLValue": false, "isPure": false, @@ -1960,26 +1960,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1160, + "id": 1241, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "2383:6:7", + "referencedDeclaration": 1117, + "src": "2387:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1162, + "id": 1243, "indexExpression": { "argumentTypes": null, - "id": 1161, + "id": 1242, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "2390:5:7", + "referencedDeclaration": 1222, + "src": "2394:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1990,7 +1990,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2383:13:7", + "src": "2387:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2001,14 +2001,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1163, + "id": 1244, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2400:1:7", + "src": "2404:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2016,7 +2016,7 @@ }, "value": "0" }, - "src": "2383:18:7", + "src": "2387:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2025,14 +2025,14 @@ { "argumentTypes": null, "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1165, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2403:29:7", + "src": "2407:29:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", @@ -2052,21 +2052,21 @@ "typeString": "literal_string \"Address is already an owner\"" } ], - "id": 1159, + "id": 1240, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2375:7:7", + "referencedDeclaration": 2663, + "src": "2379:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1166, + "id": 1247, "isConstant": false, "isLValue": false, "isPure": false, @@ -2074,20 +2074,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2375:58:7", + "src": "2379:58:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1167, + "id": 1248, "nodeType": "ExpressionStatement", - "src": "2375:58:7" + "src": "2379:58:9" }, { "expression": { "argumentTypes": null, - "id": 1174, + "id": 1255, "isConstant": false, "isLValue": false, "isPure": false, @@ -2096,26 +2096,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1168, + "id": 1249, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "2443:6:7", + "referencedDeclaration": 1117, + "src": "2447:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1170, + "id": 1251, "indexExpression": { "argumentTypes": null, - "id": 1169, + "id": 1250, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "2450:5:7", + "referencedDeclaration": 1222, + "src": "2454:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2126,7 +2126,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2443:13:7", + "src": "2447:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2138,26 +2138,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1171, + "id": 1252, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "2459:6:7", + "referencedDeclaration": 1117, + "src": "2463:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1173, + "id": 1254, "indexExpression": { "argumentTypes": null, - "id": 1172, + "id": 1253, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "2466:15:7", + "referencedDeclaration": 1113, + "src": "2470:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2168,26 +2168,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2459:23:7", + "src": "2463:23:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2443:39:7", + "src": "2447:39:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1175, + "id": 1256, "nodeType": "ExpressionStatement", - "src": "2443:39:7" + "src": "2447:39:9" }, { "expression": { "argumentTypes": null, - "id": 1180, + "id": 1261, "isConstant": false, "isLValue": false, "isPure": false, @@ -2196,26 +2196,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1176, + "id": 1257, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "2492:6:7", + "referencedDeclaration": 1117, + "src": "2496:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1178, + "id": 1259, "indexExpression": { "argumentTypes": null, - "id": 1177, + "id": 1258, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "2499:15:7", + "referencedDeclaration": 1113, + "src": "2503:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2226,7 +2226,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2492:23:7", + "src": "2496:23:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2236,31 +2236,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1179, + "id": 1260, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "2518:5:7", + "referencedDeclaration": 1222, + "src": "2522:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2492:31:7", + "src": "2496:31:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1181, + "id": 1262, "nodeType": "ExpressionStatement", - "src": "2492:31:7" + "src": "2496:31:9" }, { "expression": { "argumentTypes": null, - "id": 1183, + "id": 1264, "isConstant": false, "isLValue": false, "isPure": false, @@ -2268,15 +2268,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2533:12:7", + "src": "2537:12:9", "subExpression": { "argumentTypes": null, - "id": 1182, + "id": 1263, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1038, - "src": "2533:10:7", + "referencedDeclaration": 1119, + "src": "2537:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2287,9 +2287,9 @@ "typeString": "uint256" } }, - "id": 1184, + "id": 1265, "nodeType": "ExpressionStatement", - "src": "2533:12:7" + "src": "2537:12:9" }, { "condition": { @@ -2298,19 +2298,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1187, + "id": 1268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1185, + "id": 1266, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "2613:9:7", + "referencedDeclaration": 1121, + "src": "2617:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2320,64 +2320,64 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1186, + "id": 1267, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1143, - "src": "2626:10:7", + "referencedDeclaration": 1224, + "src": "2630:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "2613:23:7", + "src": "2617:23:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1192, + "id": 1273, "nodeType": "IfStatement", - "src": "2609:68:7", + "src": "2613:68:9", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1189, + "id": 1270, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1143, - "src": "2666:10:7", + "referencedDeclaration": 1224, + "src": "2670:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 1188, + "id": 1269, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "2650:15:7", + "referencedDeclaration": 1439, + "src": "2654:15:9", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$returns$__$", - "typeString": "function (uint8)" + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" } }, - "id": 1190, + "id": 1271, "isConstant": false, "isLValue": false, "isPure": false, @@ -2385,58 +2385,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2650:27:7", + "src": "2654:27:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1191, + "id": 1272, "nodeType": "ExpressionStatement", - "src": "2650:27:7" + "src": "2654: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": 1194, + "id": 1275, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1146, + "id": 1227, "modifierName": { "argumentTypes": null, - "id": 1145, + "id": 1226, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "2178:10:7", + "referencedDeclaration": 1687, + "src": "2182:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2178:10:7" + "src": "2182:10:9" } ], "name": "addOwnerWithThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1144, + "id": 1225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1141, + "id": 1222, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "2122:13:7", + "scope": 1275, + "src": "2124:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2444,10 +2444,10 @@ "typeString": "address" }, "typeName": { - "id": 1140, + "id": 1221, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2122:7:7", + "src": "2124:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2458,51 +2458,51 @@ }, { "constant": false, - "id": 1143, + "id": 1224, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "2137:16:7", + "scope": 1275, + "src": "2139:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1142, - "name": "uint8", + "id": 1223, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2137:5:7", + "src": "2139:7:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "2121:33:7" + "src": "2123:35:9" }, "payable": false, "returnParameters": { - "id": 1147, + "id": 1228, "nodeType": "ParameterList", "parameters": [], - "src": "2193:0:7" + "src": "2197:0:9" }, - "scope": 1432, - "src": "2091:593:7", + "scope": 1511, + "src": "2093:595:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1259, + "id": 1340, "nodeType": "Block", - "src": "3137:670:7", + "src": "3143:670:9", "statements": [ { "expression": { @@ -2514,7 +2514,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1210, + "id": 1291, "isConstant": false, "isLValue": false, "isPure": false, @@ -2525,19 +2525,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1208, + "id": 1289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1206, + "id": 1287, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1038, - "src": "3232:10:7", + "referencedDeclaration": 1119, + "src": "3238:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2548,14 +2548,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1207, + "id": 1288, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3245:1:7", + "src": "3251:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -2563,7 +2563,7 @@ }, "value": "1" }, - "src": "3232:14:7", + "src": "3238:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2573,18 +2573,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 1209, + "id": 1290, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1200, - "src": "3250:10:7", + "referencedDeclaration": 1281, + "src": "3256:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "3232:28:7", + "src": "3238:28:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2593,14 +2593,14 @@ { "argumentTypes": null, "hexValue": "4e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64", - "id": 1211, + "id": 1292, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3262:55:7", + "src": "3268:55:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_839b4c4db845de24ec74ef067d85431087d6987a4c904418ee4f6ec699c02482", @@ -2620,21 +2620,21 @@ "typeString": "literal_string \"New owner count needs to be larger than new threshold\"" } ], - "id": 1205, + "id": 1286, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "3224:7:7", + "referencedDeclaration": 2663, + "src": "3230:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1212, + "id": 1293, "isConstant": false, "isLValue": false, "isPure": false, @@ -2642,15 +2642,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3224:94:7", + "src": "3230:94:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1213, + "id": 1294, "nodeType": "ExpressionStatement", - "src": "3224:94:7" + "src": "3230:94:9" }, { "expression": { @@ -2662,7 +2662,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1221, + "id": 1302, "isConstant": false, "isLValue": false, "isPure": false, @@ -2673,19 +2673,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1217, + "id": 1298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1215, + "id": 1296, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "3416:5:7", + "referencedDeclaration": 1279, + "src": "3422:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2696,14 +2696,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1216, + "id": 1297, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3425:1:7", + "src": "3431:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2711,7 +2711,7 @@ }, "value": "0" }, - "src": "3416:10:7", + "src": "3422:10:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2725,19 +2725,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1220, + "id": 1301, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1218, + "id": 1299, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "3430:5:7", + "referencedDeclaration": 1279, + "src": "3436:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2747,24 +2747,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1219, + "id": 1300, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "3439:15:7", + "referencedDeclaration": 1113, + "src": "3445:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3430:24:7", + "src": "3436:24:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3416:38:7", + "src": "3422:38:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2773,14 +2773,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1222, + "id": 1303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3456:32:7", + "src": "3462:32:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -2800,21 +2800,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1214, + "id": 1295, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "3408:7:7", + "referencedDeclaration": 2663, + "src": "3414:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1223, + "id": 1304, "isConstant": false, "isLValue": false, "isPure": false, @@ -2822,15 +2822,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3408:81:7", + "src": "3414:81:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1224, + "id": 1305, "nodeType": "ExpressionStatement", - "src": "3408:81:7" + "src": "3414:81:9" }, { "expression": { @@ -2842,7 +2842,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1230, + "id": 1311, "isConstant": false, "isLValue": false, "isPure": false, @@ -2851,26 +2851,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1226, + "id": 1307, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "3507:6:7", + "referencedDeclaration": 1117, + "src": "3513:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1228, + "id": 1309, "indexExpression": { "argumentTypes": null, - "id": 1227, + "id": 1308, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "3514:9:7", + "referencedDeclaration": 1277, + "src": "3520:9:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2881,7 +2881,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3507:17:7", + "src": "3513:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2891,18 +2891,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1229, + "id": 1310, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "3528:5:7", + "referencedDeclaration": 1279, + "src": "3534:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3507:26:7", + "src": "3513:26:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2911,14 +2911,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1231, + "id": 1312, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3535:40:7", + "src": "3541:40:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", @@ -2938,21 +2938,21 @@ "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" } ], - "id": 1225, + "id": 1306, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "3499:7:7", + "referencedDeclaration": 2663, + "src": "3505:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1232, + "id": 1313, "isConstant": false, "isLValue": false, "isPure": false, @@ -2960,20 +2960,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3499:77:7", + "src": "3505:77:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1233, + "id": 1314, "nodeType": "ExpressionStatement", - "src": "3499:77:7" + "src": "3505:77:9" }, { "expression": { "argumentTypes": null, - "id": 1240, + "id": 1321, "isConstant": false, "isLValue": false, "isPure": false, @@ -2982,26 +2982,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1234, + "id": 1315, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "3586:6:7", + "referencedDeclaration": 1117, + "src": "3592:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1236, + "id": 1317, "indexExpression": { "argumentTypes": null, - "id": 1235, + "id": 1316, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "3593:9:7", + "referencedDeclaration": 1277, + "src": "3599:9:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3012,7 +3012,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3586:17:7", + "src": "3592:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3024,26 +3024,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1237, + "id": 1318, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "3606:6:7", + "referencedDeclaration": 1117, + "src": "3612:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1239, + "id": 1320, "indexExpression": { "argumentTypes": null, - "id": 1238, + "id": 1319, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "3613:5:7", + "referencedDeclaration": 1279, + "src": "3619:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3054,26 +3054,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3606:13:7", + "src": "3612:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3586:33:7", + "src": "3592:33:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1241, + "id": 1322, "nodeType": "ExpressionStatement", - "src": "3586:33:7" + "src": "3592:33:9" }, { "expression": { "argumentTypes": null, - "id": 1246, + "id": 1327, "isConstant": false, "isLValue": false, "isPure": false, @@ -3082,26 +3082,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1242, + "id": 1323, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "3629:6:7", + "referencedDeclaration": 1117, + "src": "3635:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1244, + "id": 1325, "indexExpression": { "argumentTypes": null, - "id": 1243, + "id": 1324, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "3636:5:7", + "referencedDeclaration": 1279, + "src": "3642:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3112,7 +3112,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3629:13:7", + "src": "3635:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3123,14 +3123,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1245, + "id": 1326, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3645:1:7", + "src": "3651:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3138,20 +3138,20 @@ }, "value": "0" }, - "src": "3629:17:7", + "src": "3635:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1247, + "id": 1328, "nodeType": "ExpressionStatement", - "src": "3629:17:7" + "src": "3635:17:9" }, { "expression": { "argumentTypes": null, - "id": 1249, + "id": 1330, "isConstant": false, "isLValue": false, "isPure": false, @@ -3159,15 +3159,15 @@ "nodeType": "UnaryOperation", "operator": "--", "prefix": false, - "src": "3656:12:7", + "src": "3662:12:9", "subExpression": { "argumentTypes": null, - "id": 1248, + "id": 1329, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1038, - "src": "3656:10:7", + "referencedDeclaration": 1119, + "src": "3662:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3178,9 +3178,9 @@ "typeString": "uint256" } }, - "id": 1250, + "id": 1331, "nodeType": "ExpressionStatement", - "src": "3656:12:7" + "src": "3662:12:9" }, { "condition": { @@ -3189,19 +3189,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1253, + "id": 1334, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1251, + "id": 1332, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "3736:9:7", + "referencedDeclaration": 1121, + "src": "3742:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3211,64 +3211,64 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1252, + "id": 1333, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1200, - "src": "3749:10:7", + "referencedDeclaration": 1281, + "src": "3755:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "3736:23:7", + "src": "3742:23:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1258, + "id": 1339, "nodeType": "IfStatement", - "src": "3732:68:7", + "src": "3738:68:9", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1255, + "id": 1336, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1200, - "src": "3789:10:7", + "referencedDeclaration": 1281, + "src": "3795:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 1254, + "id": 1335, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "3773:15:7", + "referencedDeclaration": 1439, + "src": "3779:15:9", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$returns$__$", - "typeString": "function (uint8)" + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" } }, - "id": 1256, + "id": 1337, "isConstant": false, "isLValue": false, "isPure": false, @@ -3276,58 +3276,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3773:27:7", + "src": "3779:27:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1257, + "id": 1338, "nodeType": "ExpressionStatement", - "src": "3773:27:7" + "src": "3779: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": 1260, + "id": 1341, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1203, + "id": 1284, "modifierName": { "argumentTypes": null, - "id": 1202, + "id": 1283, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "3122:10:7", + "referencedDeclaration": 1687, + "src": "3128:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3122:10:7" + "src": "3128:10:9" } ], "name": "removeOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1201, + "id": 1282, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1196, + "id": 1277, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1260, - "src": "3047:17:7", + "scope": 1341, + "src": "3051:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3335,10 +3335,10 @@ "typeString": "address" }, "typeName": { - "id": 1195, + "id": 1276, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3047:7:7", + "src": "3051:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3349,11 +3349,11 @@ }, { "constant": false, - "id": 1198, + "id": 1279, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1260, - "src": "3066:13:7", + "scope": 1341, + "src": "3070:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3361,10 +3361,10 @@ "typeString": "address" }, "typeName": { - "id": 1197, + "id": 1278, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3066:7:7", + "src": "3070:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3375,51 +3375,51 @@ }, { "constant": false, - "id": 1200, + "id": 1281, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1260, - "src": "3081:16:7", + "scope": 1341, + "src": "3085:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1199, - "name": "uint8", + "id": 1280, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3081:5:7", + "src": "3085:7:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "3046:52:7" + "src": "3050:54:9" }, "payable": false, "returnParameters": { - "id": 1204, + "id": 1285, "nodeType": "ParameterList", "parameters": [], - "src": "3137:0:7" + "src": "3143:0:9" }, - "scope": 1432, - "src": "3026:781:7", + "scope": 1511, + "src": "3030:783:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1331, + "id": 1412, "nodeType": "Block", - "src": "4253:639:7", + "src": "4259:639:9", "statements": [ { "expression": { @@ -3431,7 +3431,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1278, + "id": 1359, "isConstant": false, "isLValue": false, "isPure": false, @@ -3442,19 +3442,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1274, + "id": 1355, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1272, + "id": 1353, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "4312:8:7", + "referencedDeclaration": 1347, + "src": "4318:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3465,14 +3465,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1273, + "id": 1354, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4324:1:7", + "src": "4330:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3480,7 +3480,7 @@ }, "value": "0" }, - "src": "4312:13:7", + "src": "4318:13:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3494,19 +3494,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1277, + "id": 1358, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1275, + "id": 1356, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "4329:8:7", + "referencedDeclaration": 1347, + "src": "4335:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3516,24 +3516,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1276, + "id": 1357, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "4341:15:7", + "referencedDeclaration": 1113, + "src": "4347:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4329:27:7", + "src": "4335:27:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4312:44:7", + "src": "4318:44:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3542,14 +3542,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1279, + "id": 1360, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4358:32:7", + "src": "4364:32:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -3569,21 +3569,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1271, + "id": 1352, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "4304:7:7", + "referencedDeclaration": 2663, + "src": "4310:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1280, + "id": 1361, "isConstant": false, "isLValue": false, "isPure": false, @@ -3591,15 +3591,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4304:87:7", + "src": "4310:87:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1281, + "id": 1362, "nodeType": "ExpressionStatement", - "src": "4304:87:7" + "src": "4310:87:9" }, { "expression": { @@ -3611,7 +3611,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1287, + "id": 1368, "isConstant": false, "isLValue": false, "isPure": false, @@ -3620,26 +3620,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1283, + "id": 1364, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "4449:6:7", + "referencedDeclaration": 1117, + "src": "4455:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1285, + "id": 1366, "indexExpression": { "argumentTypes": null, - "id": 1284, + "id": 1365, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "4456:8:7", + "referencedDeclaration": 1347, + "src": "4462:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3650,7 +3650,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4449:16:7", + "src": "4455:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3661,14 +3661,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1286, + "id": 1367, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4469:1:7", + "src": "4475:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3676,7 +3676,7 @@ }, "value": "0" }, - "src": "4449:21:7", + "src": "4455:21:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3685,14 +3685,14 @@ { "argumentTypes": null, "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1288, + "id": 1369, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4472:29:7", + "src": "4478:29:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", @@ -3712,21 +3712,21 @@ "typeString": "literal_string \"Address is already an owner\"" } ], - "id": 1282, + "id": 1363, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "4441:7:7", + "referencedDeclaration": 2663, + "src": "4447:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1289, + "id": 1370, "isConstant": false, "isLValue": false, "isPure": false, @@ -3734,15 +3734,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4441:61:7", + "src": "4447:61:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1290, + "id": 1371, "nodeType": "ExpressionStatement", - "src": "4441:61:7" + "src": "4447:61:9" }, { "expression": { @@ -3754,7 +3754,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1298, + "id": 1379, "isConstant": false, "isLValue": false, "isPure": false, @@ -3765,19 +3765,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1294, + "id": 1375, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1292, + "id": 1373, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1264, - "src": "4603:8:7", + "referencedDeclaration": 1345, + "src": "4609:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3788,14 +3788,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1293, + "id": 1374, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4615:1:7", + "src": "4621:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3803,7 +3803,7 @@ }, "value": "0" }, - "src": "4603:13:7", + "src": "4609:13:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3817,19 +3817,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1297, + "id": 1378, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1295, + "id": 1376, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1264, - "src": "4620:8:7", + "referencedDeclaration": 1345, + "src": "4626:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3839,24 +3839,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1296, + "id": 1377, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "4632:15:7", + "referencedDeclaration": 1113, + "src": "4638:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4620:27:7", + "src": "4626:27:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4603:44:7", + "src": "4609:44:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3865,14 +3865,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1299, + "id": 1380, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4649:32:7", + "src": "4655:32:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -3892,21 +3892,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1291, + "id": 1372, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "4595:7:7", + "referencedDeclaration": 2663, + "src": "4601:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1300, + "id": 1381, "isConstant": false, "isLValue": false, "isPure": false, @@ -3914,15 +3914,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4595:87:7", + "src": "4601:87:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1301, + "id": 1382, "nodeType": "ExpressionStatement", - "src": "4595:87:7" + "src": "4601:87:9" }, { "expression": { @@ -3934,7 +3934,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1307, + "id": 1388, "isConstant": false, "isLValue": false, "isPure": false, @@ -3943,26 +3943,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1303, + "id": 1384, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "4700:6:7", + "referencedDeclaration": 1117, + "src": "4706:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1305, + "id": 1386, "indexExpression": { "argumentTypes": null, - "id": 1304, + "id": 1385, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "4707:9:7", + "referencedDeclaration": 1343, + "src": "4713:9:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3973,7 +3973,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4700:17:7", + "src": "4706:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3983,18 +3983,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1306, + "id": 1387, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1264, - "src": "4721:8:7", + "referencedDeclaration": 1345, + "src": "4727:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4700:29:7", + "src": "4706:29:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4003,14 +4003,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1308, + "id": 1389, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4731:40:7", + "src": "4737:40:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", @@ -4030,21 +4030,21 @@ "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" } ], - "id": 1302, + "id": 1383, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "4692:7:7", + "referencedDeclaration": 2663, + "src": "4698:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1309, + "id": 1390, "isConstant": false, "isLValue": false, "isPure": false, @@ -4052,20 +4052,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4692:80:7", + "src": "4698:80:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1310, + "id": 1391, "nodeType": "ExpressionStatement", - "src": "4692:80:7" + "src": "4698:80:9" }, { "expression": { "argumentTypes": null, - "id": 1317, + "id": 1398, "isConstant": false, "isLValue": false, "isPure": false, @@ -4074,26 +4074,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1311, + "id": 1392, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "4782:6:7", + "referencedDeclaration": 1117, + "src": "4788:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1313, + "id": 1394, "indexExpression": { "argumentTypes": null, - "id": 1312, + "id": 1393, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "4789:8:7", + "referencedDeclaration": 1347, + "src": "4795:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4104,7 +4104,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4782:16:7", + "src": "4788:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4116,26 +4116,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1314, + "id": 1395, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "4801:6:7", + "referencedDeclaration": 1117, + "src": "4807:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1316, + "id": 1397, "indexExpression": { "argumentTypes": null, - "id": 1315, + "id": 1396, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1264, - "src": "4808:8:7", + "referencedDeclaration": 1345, + "src": "4814:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4146,26 +4146,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4801:16:7", + "src": "4807:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4782:35:7", + "src": "4788:35:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1318, + "id": 1399, "nodeType": "ExpressionStatement", - "src": "4782:35:7" + "src": "4788:35:9" }, { "expression": { "argumentTypes": null, - "id": 1323, + "id": 1404, "isConstant": false, "isLValue": false, "isPure": false, @@ -4174,26 +4174,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1319, + "id": 1400, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "4827:6:7", + "referencedDeclaration": 1117, + "src": "4833:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1321, + "id": 1402, "indexExpression": { "argumentTypes": null, - "id": 1320, + "id": 1401, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "4834:9:7", + "referencedDeclaration": 1343, + "src": "4840:9:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4204,7 +4204,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4827:17:7", + "src": "4833:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4214,31 +4214,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1322, + "id": 1403, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "4847:8:7", + "referencedDeclaration": 1347, + "src": "4853:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4827:28:7", + "src": "4833:28:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1324, + "id": 1405, "nodeType": "ExpressionStatement", - "src": "4827:28:7" + "src": "4833:28:9" }, { "expression": { "argumentTypes": null, - "id": 1329, + "id": 1410, "isConstant": false, "isLValue": false, "isPure": false, @@ -4247,26 +4247,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1325, + "id": 1406, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "4865:6:7", + "referencedDeclaration": 1117, + "src": "4871:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1327, + "id": 1408, "indexExpression": { "argumentTypes": null, - "id": 1326, + "id": 1407, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1264, - "src": "4872:8:7", + "referencedDeclaration": 1345, + "src": "4878:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4277,7 +4277,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4865:16:7", + "src": "4871:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4288,14 +4288,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1328, + "id": 1409, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4884:1:7", + "src": "4890:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4303,57 +4303,57 @@ }, "value": "0" }, - "src": "4865:20:7", + "src": "4871:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1330, + "id": 1411, "nodeType": "ExpressionStatement", - "src": "4865:20:7" + "src": "4871: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": 1332, + "id": 1413, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1269, + "id": 1350, "modifierName": { "argumentTypes": null, - "id": 1268, + "id": 1349, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "4238:10:7", + "referencedDeclaration": 1687, + "src": "4244:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4238:10:7" + "src": "4244:10:9" } ], "name": "swapOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1267, + "id": 1348, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1262, + "id": 1343, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1332, - "src": "4160:17:7", + "scope": 1413, + "src": "4166:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4361,10 +4361,10 @@ "typeString": "address" }, "typeName": { - "id": 1261, + "id": 1342, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4160:7:7", + "src": "4166:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4375,11 +4375,11 @@ }, { "constant": false, - "id": 1264, + "id": 1345, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 1332, - "src": "4179:16:7", + "scope": 1413, + "src": "4185:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4387,10 +4387,10 @@ "typeString": "address" }, "typeName": { - "id": 1263, + "id": 1344, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4179:7:7", + "src": "4185:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4401,11 +4401,11 @@ }, { "constant": false, - "id": 1266, + "id": 1347, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 1332, - "src": "4197:16:7", + "scope": 1413, + "src": "4203:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4413,10 +4413,10 @@ "typeString": "address" }, "typeName": { - "id": 1265, + "id": 1346, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4197:7:7", + "src": "4203:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4426,26 +4426,26 @@ "visibility": "internal" } ], - "src": "4159:55:7" + "src": "4165:55:9" }, "payable": false, "returnParameters": { - "id": 1270, + "id": 1351, "nodeType": "ParameterList", "parameters": [], - "src": "4253:0:7" + "src": "4259:0:9" }, - "scope": 1432, - "src": "4141:751:7", + "scope": 1511, + "src": "4147:751:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1357, + "id": 1438, "nodeType": "Block", - "src": "5162:316:7", + "src": "5170:316:9", "statements": [ { "expression": { @@ -4457,40 +4457,40 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1342, + "id": 1423, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1340, + "id": 1421, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "5249:10:7", + "referencedDeclaration": 1415, + "src": "5257:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1341, + "id": 1422, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1038, - "src": "5263:10:7", + "referencedDeclaration": 1119, + "src": "5271:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5249:24:7", + "src": "5257:24:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4499,14 +4499,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1343, + "id": 1424, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5275:37:7", + "src": "5283:37:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", @@ -4526,21 +4526,21 @@ "typeString": "literal_string \"Threshold cannot exceed owner count\"" } ], - "id": 1339, + "id": 1420, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "5241:7:7", + "referencedDeclaration": 2663, + "src": "5249:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1344, + "id": 1425, "isConstant": false, "isLValue": false, "isPure": false, @@ -4548,15 +4548,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5241:72:7", + "src": "5249:72:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1345, + "id": 1426, "nodeType": "ExpressionStatement", - "src": "5241:72:7" + "src": "5249:72:9" }, { "expression": { @@ -4565,25 +4565,25 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 1349, + "id": 1430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1347, + "id": 1428, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "5383:10:7", + "referencedDeclaration": 1415, + "src": "5391:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", @@ -4591,14 +4591,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1348, + "id": 1429, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5397:1:7", + "src": "5405:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -4606,7 +4606,7 @@ }, "value": "1" }, - "src": "5383:15:7", + "src": "5391:15:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4615,14 +4615,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1350, + "id": 1431, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5400:38:7", + "src": "5408:38:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", @@ -4642,21 +4642,21 @@ "typeString": "literal_string \"Threshold needs to be greater than 0\"" } ], - "id": 1346, + "id": 1427, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "5375:7:7", + "referencedDeclaration": 2663, + "src": "5383:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1351, + "id": 1432, "isConstant": false, "isLValue": false, "isPure": false, @@ -4664,32 +4664,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5375:64:7", + "src": "5383:64:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1352, + "id": 1433, "nodeType": "ExpressionStatement", - "src": "5375:64:7" + "src": "5383:64:9" }, { "expression": { "argumentTypes": null, - "id": 1355, + "id": 1436, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1353, + "id": 1434, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "5449:9:7", + "referencedDeclaration": 1121, + "src": "5457:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4699,170 +4699,132 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1354, + "id": 1435, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "5461:10:7", + "referencedDeclaration": 1415, + "src": "5469:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "5449:22:7", + "src": "5457:22:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1356, + "id": 1437, "nodeType": "ExpressionStatement", - "src": "5449:22:7" + "src": "5457: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": 1358, + "id": 1439, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1337, + "id": 1418, "modifierName": { "argumentTypes": null, - "id": 1336, + "id": 1417, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "5147:10:7", + "referencedDeclaration": 1687, + "src": "5155:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5147:10:7" + "src": "5155:10:9" } ], "name": "changeThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1335, + "id": 1416, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1334, + "id": 1415, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1358, - "src": "5106:16:7", + "scope": 1439, + "src": "5112:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1333, - "name": "uint8", + "id": 1414, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5106:5:7", + "src": "5112:7:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "5105:18:7" + "src": "5111:20:9" }, "payable": false, "returnParameters": { - "id": 1338, + "id": 1419, "nodeType": "ParameterList", "parameters": [], - "src": "5162:0:7" + "src": "5170:0:9" }, - "scope": 1432, - "src": "5081:397:7", + "scope": 1511, + "src": "5087:399:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1367, + "id": 1446, "nodeType": "Block", - "src": "5564:40:7", + "src": "5574:33:9", "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1364, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "5587:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1363, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5581:5:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": "uint8" - }, - "id": 1365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5581:16:7", + "id": 1444, + "name": "threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1121, + "src": "5591:9:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "functionReturnParameters": 1362, - "id": 1366, + "functionReturnParameters": 1443, + "id": 1445, "nodeType": "Return", - "src": "5574:23:7" + "src": "5584:16:9" } ] }, "documentation": null, - "id": 1368, + "id": 1447, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4870,56 +4832,56 @@ "name": "getThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1359, + "id": 1440, "nodeType": "ParameterList", "parameters": [], - "src": "5505:2:7" + "src": "5513:2:9" }, "payable": false, "returnParameters": { - "id": 1362, + "id": 1443, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1361, + "id": 1442, "name": "", "nodeType": "VariableDeclaration", - "scope": 1368, - "src": "5553:5:7", + "scope": 1447, + "src": "5561:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1360, - "name": "uint8", + "id": 1441, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5553:5:7", + "src": "5561:7:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "5552:7:7" + "src": "5560:9:9" }, - "scope": 1432, - "src": "5484:120:7", + "scope": 1511, + "src": "5492:115:9", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1381, + "id": 1460, "nodeType": "Block", - "src": "5697:42:7", + "src": "5700:42:9", "statements": [ { "expression": { @@ -4928,7 +4890,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1379, + "id": 1458, "isConstant": false, "isLValue": false, "isPure": false, @@ -4937,26 +4899,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1375, + "id": 1454, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "5714:6:7", + "referencedDeclaration": 1117, + "src": "5717:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1377, + "id": 1456, "indexExpression": { "argumentTypes": null, - "id": 1376, + "id": 1455, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1370, - "src": "5721:5:7", + "referencedDeclaration": 1449, + "src": "5724:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4967,7 +4929,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5714:13:7", + "src": "5717:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4978,14 +4940,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1378, + "id": 1457, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5731:1:7", + "src": "5734:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4993,21 +4955,21 @@ }, "value": "0" }, - "src": "5714:18:7", + "src": "5717:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1374, - "id": 1380, + "functionReturnParameters": 1453, + "id": 1459, "nodeType": "Return", - "src": "5707:25:7" + "src": "5710:25:9" } ] }, "documentation": null, - "id": 1382, + "id": 1461, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5015,16 +4977,16 @@ "name": "isOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1371, + "id": 1450, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1370, + "id": 1449, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1382, - "src": "5627:13:7", + "scope": 1461, + "src": "5630:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5032,10 +4994,10 @@ "typeString": "address" }, "typeName": { - "id": 1369, + "id": 1448, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5627:7:7", + "src": "5630:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5045,20 +5007,20 @@ "visibility": "internal" } ], - "src": "5626:15:7" + "src": "5629:15:9" }, "payable": false, "returnParameters": { - "id": 1374, + "id": 1453, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1373, + "id": 1452, "name": "", "nodeType": "VariableDeclaration", - "scope": 1382, - "src": "5687:4:7", + "scope": 1461, + "src": "5690:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5066,10 +5028,10 @@ "typeString": "bool" }, "typeName": { - "id": 1372, + "id": 1451, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5687:4:7", + "src": "5690:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5079,32 +5041,32 @@ "visibility": "internal" } ], - "src": "5686:6:7" + "src": "5689:6:9" }, - "scope": 1432, - "src": "5610:129:7", + "scope": 1511, + "src": "5613:129:9", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1430, + "id": 1509, "nodeType": "Block", - "src": "5902:377:7", + "src": "5905:377:9", "statements": [ { "assignments": [ - 1391 + 1470 ], "declarations": [ { "constant": false, - "id": 1391, + "id": 1470, "name": "array", "nodeType": "VariableDeclaration", - "scope": 1431, - "src": "5912:22:7", + "scope": 1510, + "src": "5915:22:9", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5113,19 +5075,19 @@ }, "typeName": { "baseType": { - "id": 1389, + "id": 1468, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5912:7:7", + "src": "5915:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1390, + "id": 1469, "length": null, "nodeType": "ArrayTypeName", - "src": "5912:9:7", + "src": "5915:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -5135,18 +5097,18 @@ "visibility": "internal" } ], - "id": 1397, + "id": 1476, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1395, + "id": 1474, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1038, - "src": "5951:10:7", + "referencedDeclaration": 1119, + "src": "5954:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5160,39 +5122,39 @@ "typeString": "uint256" } ], - "id": 1394, + "id": 1473, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "5937:13:7", + "src": "5940: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": 1392, + "id": 1471, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5941:7:7", + "src": "5944:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1393, + "id": 1472, "length": null, "nodeType": "ArrayTypeName", - "src": "5941:9:7", + "src": "5944:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 1396, + "id": 1475, "isConstant": false, "isLValue": false, "isPure": false, @@ -5200,27 +5162,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5937:25:7", + "src": "5940:25:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5912:50:7" + "src": "5915:50:9" }, { "assignments": [ - 1399 + 1478 ], "declarations": [ { "constant": false, - "id": 1399, + "id": 1478, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1431, - "src": "6006:13:7", + "scope": 1510, + "src": "6009:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5228,10 +5190,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1398, + "id": 1477, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6006:7:7", + "src": "6009:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5241,18 +5203,18 @@ "visibility": "internal" } ], - "id": 1401, + "id": 1480, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1400, + "id": 1479, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6022:1:7", + "src": "6025:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5261,20 +5223,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6006:17:7" + "src": "6009:17:9" }, { "assignments": [ - 1403 + 1482 ], "declarations": [ { "constant": false, - "id": 1403, + "id": 1482, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1431, - "src": "6033:20:7", + "scope": 1510, + "src": "6036:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5282,10 +5244,10 @@ "typeString": "address" }, "typeName": { - "id": 1402, + "id": 1481, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6033:7:7", + "src": "6036:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5295,31 +5257,31 @@ "visibility": "internal" } ], - "id": 1407, + "id": 1486, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1404, + "id": 1483, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "6056:6:7", + "referencedDeclaration": 1117, + "src": "6059:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1406, + "id": 1485, "indexExpression": { "argumentTypes": null, - "id": 1405, + "id": 1484, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "6063:15:7", + "referencedDeclaration": 1113, + "src": "6066:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5330,25 +5292,25 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6056:23:7", + "src": "6059:23:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "6033:46:7" + "src": "6036:46:9" }, { "body": { - "id": 1426, + "id": 1505, "nodeType": "Block", - "src": "6128:123:7", + "src": "6131:123:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 1415, + "id": 1494, "isConstant": false, "isLValue": false, "isPure": false, @@ -5357,26 +5319,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1411, + "id": 1490, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "6142:5:7", + "referencedDeclaration": 1470, + "src": "6145:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1413, + "id": 1492, "indexExpression": { "argumentTypes": null, - "id": 1412, + "id": 1491, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1399, - "src": "6148:5:7", + "referencedDeclaration": 1478, + "src": "6151:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5387,7 +5349,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6142:12:7", + "src": "6145:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5397,43 +5359,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1414, + "id": 1493, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "6157:12:7", + "referencedDeclaration": 1482, + "src": "6160:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6142:27:7", + "src": "6145:27:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1416, + "id": 1495, "nodeType": "ExpressionStatement", - "src": "6142:27:7" + "src": "6145:27:9" }, { "expression": { "argumentTypes": null, - "id": 1421, + "id": 1500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1417, + "id": 1496, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "6183:12:7", + "referencedDeclaration": 1482, + "src": "6186:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5445,26 +5407,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1418, + "id": 1497, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "6198:6:7", + "referencedDeclaration": 1117, + "src": "6201:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1420, + "id": 1499, "indexExpression": { "argumentTypes": null, - "id": 1419, + "id": 1498, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "6205:12:7", + "referencedDeclaration": 1482, + "src": "6208:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5475,26 +5437,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6198:20:7", + "src": "6201:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6183:35:7", + "src": "6186:35:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1422, + "id": 1501, "nodeType": "ExpressionStatement", - "src": "6183:35:7" + "src": "6186:35:9" }, { "expression": { "argumentTypes": null, - "id": 1424, + "id": 1503, "isConstant": false, "isLValue": false, "isPure": false, @@ -5502,15 +5464,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6232:8:7", + "src": "6235:8:9", "subExpression": { "argumentTypes": null, - "id": 1423, + "id": 1502, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1399, - "src": "6232:5:7", + "referencedDeclaration": 1478, + "src": "6235:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5521,9 +5483,9 @@ "typeString": "uint256" } }, - "id": 1425, + "id": 1504, "nodeType": "ExpressionStatement", - "src": "6232:8:7" + "src": "6235:8:9" } ] }, @@ -5533,19 +5495,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1410, + "id": 1489, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1408, + "id": 1487, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "6095:12:7", + "referencedDeclaration": 1482, + "src": "6098:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5555,50 +5517,50 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1409, + "id": 1488, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "6111:15:7", + "referencedDeclaration": 1113, + "src": "6114:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6095:31:7", + "src": "6098:31:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1427, + "id": 1506, "nodeType": "WhileStatement", - "src": "6089:162:7" + "src": "6092:162:9" }, { "expression": { "argumentTypes": null, - "id": 1428, + "id": 1507, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "6267:5:7", + "referencedDeclaration": 1470, + "src": "6270:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 1387, - "id": 1429, + "functionReturnParameters": 1466, + "id": 1508, "nodeType": "Return", - "src": "6260:12:7" + "src": "6263:12:9" } ] }, "documentation": "@dev Returns array of owners.\n @return Array of Safe owners.", - "id": 1431, + "id": 1510, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5606,23 +5568,23 @@ "name": "getOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 1383, + "id": 1462, "nodeType": "ParameterList", "parameters": [], - "src": "5839:2:7" + "src": "5842:2:9" }, "payable": false, "returnParameters": { - "id": 1387, + "id": 1466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1386, + "id": 1465, "name": "", "nodeType": "VariableDeclaration", - "scope": 1431, - "src": "5887:9:7", + "scope": 1510, + "src": "5890:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5631,19 +5593,19 @@ }, "typeName": { "baseType": { - "id": 1384, + "id": 1463, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5887:7:7", + "src": "5890:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1385, + "id": 1464, "length": null, "nodeType": "ArrayTypeName", - "src": "5887:9:7", + "src": "5890:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -5653,49 +5615,49 @@ "visibility": "internal" } ], - "src": "5886:11:7" + "src": "5889:11:9" }, - "scope": 1432, - "src": "5821:458:7", + "scope": 1511, + "src": "5824:458:9", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1433, - "src": "240:6041:7" + "scope": 1512, + "src": "240:6044:9" } ], - "src": "0:6282:7" + "src": "0:6285:9" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "exportedSymbols": { "OwnerManager": [ - 1432 + 1511 ] }, - "id": 1433, + "id": 1512, "nodeType": "SourceUnit", "nodes": [ { - "id": 1024, + "id": 1105, "literals": [ "solidity", "0.4", ".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": 1025, + "id": 1106, "nodeType": "ImportDirective", - "scope": 1433, - "sourceUnit": 1450, - "src": "24:30:7", + "scope": 1512, + "sourceUnit": 1689, + "src": "24:30:9", "symbolAliases": [], "unitAlias": "" }, @@ -5705,42 +5667,42 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1026, + "id": 1107, "name": "SelfAuthorized", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1449, - "src": "265:14:7", + "referencedDeclaration": 1688, + "src": "265:14:9", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1449", + "typeIdentifier": "t_contract$_SelfAuthorized_$1688", "typeString": "contract SelfAuthorized" } }, - "id": 1027, + "id": 1108, "nodeType": "InheritanceSpecifier", - "src": "265:14:7" + "src": "265:14:9" } ], "contractDependencies": [ - 1449 + 1688 ], "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": 1432, + "id": 1511, "linearizedBaseContracts": [ - 1432, - 1449 + 1511, + 1688 ], "name": "OwnerManager", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 1032, + "id": 1113, "name": "SENTINEL_OWNERS", "nodeType": "VariableDeclaration", - "scope": 1432, - "src": "287:54:7", + "scope": 1511, + "src": "287:54:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5748,10 +5710,10 @@ "typeString": "address" }, "typeName": { - "id": 1028, + "id": 1109, "name": "address", "nodeType": "ElementaryTypeName", - "src": "287:7:7", + "src": "287:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5763,14 +5725,14 @@ { "argumentTypes": null, "hexValue": "307831", - "id": 1030, + "id": 1111, "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", @@ -5786,20 +5748,20 @@ "typeString": "int_const 1" } ], - "id": 1029, + "id": 1110, "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": 1031, + "id": 1112, "isConstant": false, "isLValue": false, "isPure": true, @@ -5807,7 +5769,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "329:12:7", + "src": "329:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5817,11 +5779,11 @@ }, { "constant": false, - "id": 1036, + "id": 1117, "name": "owners", "nodeType": "VariableDeclaration", - "scope": 1432, - "src": "348:43:7", + "scope": 1511, + "src": "348:43:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5829,28 +5791,28 @@ "typeString": "mapping(address => address)" }, "typeName": { - "id": 1035, + "id": 1116, "keyType": { - "id": 1033, + "id": 1114, "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": 1034, + "id": 1115, "name": "address", "nodeType": "ElementaryTypeName", - "src": "367:7:7", + "src": "367:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5862,11 +5824,11 @@ }, { "constant": false, - "id": 1038, + "id": 1119, "name": "ownerCount", "nodeType": "VariableDeclaration", - "scope": 1432, - "src": "397:18:7", + "scope": 1511, + "src": "397:18:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5874,10 +5836,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1037, + "id": 1118, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "397:7:7", + "src": "397:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5888,11 +5850,11 @@ }, { "constant": false, - "id": 1040, + "id": 1121, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 1432, - "src": "421:26:7", + "scope": 1511, + "src": "421:26:9", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -5900,10 +5862,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1039, + "id": 1120, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "421:7:7", + "src": "421:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5914,9 +5876,9 @@ }, { "body": { - "id": 1138, + "id": 1219, "nodeType": "Block", - "src": "722:1129:7", + "src": "724:1129:9", "statements": [ { "expression": { @@ -5928,19 +5890,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1051, + "id": 1132, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1049, + "id": 1130, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "864:9:7", + "referencedDeclaration": 1121, + "src": "866:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5951,14 +5913,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1050, + "id": 1131, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "877:1:7", + "src": "879:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5966,7 +5928,7 @@ }, "value": "0" }, - "src": "864:14:7", + "src": "866:14:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5975,14 +5937,14 @@ { "argumentTypes": null, "hexValue": "4f776e657273206861766520616c7265616479206265656e207365747570", - "id": 1052, + "id": 1133, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "880:32:7", + "src": "882:32:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9a45ae898fbe2bd07a0b33b5a6c421f76198e9deb66843b8d827b0b9e4a16f86", @@ -6002,21 +5964,21 @@ "typeString": "literal_string \"Owners have already been setup\"" } ], - "id": 1048, + "id": 1129, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "856:7:7", + "referencedDeclaration": 2663, + "src": "858:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1053, + "id": 1134, "isConstant": false, "isLValue": false, "isPure": false, @@ -6024,15 +5986,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "856:57:7", + "src": "858:57:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1054, + "id": 1135, "nodeType": "ExpressionStatement", - "src": "856:57:7" + "src": "858:57:9" }, { "expression": { @@ -6044,22 +6006,22 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1059, + "id": 1140, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1056, + "id": 1137, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1045, - "src": "1006:10:7", + "referencedDeclaration": 1126, + "src": "1008:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", @@ -6068,18 +6030,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1057, + "id": 1138, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "1020:7:7", + "referencedDeclaration": 1124, + "src": "1022:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1058, + "id": 1139, "isConstant": false, "isLValue": false, "isPure": false, @@ -6087,13 +6049,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1020:14:7", + "src": "1022:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1006:28:7", + "src": "1008:28:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6102,14 +6064,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1060, + "id": 1141, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1036:37:7", + "src": "1038:37:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", @@ -6129,21 +6091,21 @@ "typeString": "literal_string \"Threshold cannot exceed owner count\"" } ], - "id": 1055, + "id": 1136, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "998:7:7", + "referencedDeclaration": 2663, + "src": "1000:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1061, + "id": 1142, "isConstant": false, "isLValue": false, "isPure": false, @@ -6151,15 +6113,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "998:76:7", + "src": "1000:76:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1062, + "id": 1143, "nodeType": "ExpressionStatement", - "src": "998:76:7" + "src": "1000:76:9" }, { "expression": { @@ -6168,25 +6130,25 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 1066, + "id": 1147, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1064, + "id": 1145, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1045, - "src": "1144:10:7", + "referencedDeclaration": 1126, + "src": "1146:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", @@ -6194,14 +6156,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1065, + "id": 1146, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1158:1:7", + "src": "1160:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -6209,7 +6171,7 @@ }, "value": "1" }, - "src": "1144:15:7", + "src": "1146:15:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6218,14 +6180,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1067, + "id": 1148, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1161:38:7", + "src": "1163:38:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", @@ -6245,21 +6207,21 @@ "typeString": "literal_string \"Threshold needs to be greater than 0\"" } ], - "id": 1063, + "id": 1144, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1136:7:7", + "referencedDeclaration": 2663, + "src": "1138:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1068, + "id": 1149, "isConstant": false, "isLValue": false, "isPure": false, @@ -6267,28 +6229,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1136:64:7", + "src": "1138:64:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1069, + "id": 1150, "nodeType": "ExpressionStatement", - "src": "1136:64:7" + "src": "1138:64:9" }, { "assignments": [ - 1071 + 1152 ], "declarations": [ { "constant": false, - "id": 1071, + "id": 1152, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "1247:20:7", + "scope": 1220, + "src": "1249:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6296,10 +6258,10 @@ "typeString": "address" }, "typeName": { - "id": 1070, + "id": 1151, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1247:7:7", + "src": "1249:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6309,41 +6271,41 @@ "visibility": "internal" } ], - "id": 1073, + "id": 1154, "initialValue": { "argumentTypes": null, - "id": 1072, + "id": 1153, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "1270:15:7", + "referencedDeclaration": 1113, + "src": "1272:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1247:38:7" + "src": "1249:38:9" }, { "body": { - "id": 1121, + "id": 1202, "nodeType": "Block", - "src": "1340:388:7", + "src": "1342:388:9", "statements": [ { "assignments": [ - 1086 + 1167 ], "declarations": [ { "constant": false, - "id": 1086, + "id": 1167, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "1399:13:7", + "scope": 1220, + "src": "1401:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6351,10 +6313,10 @@ "typeString": "address" }, "typeName": { - "id": 1085, + "id": 1166, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1399:7:7", + "src": "1401:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6364,31 +6326,31 @@ "visibility": "internal" } ], - "id": 1090, + "id": 1171, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1087, + "id": 1168, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "1415:7:7", + "referencedDeclaration": 1124, + "src": "1417:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1089, + "id": 1170, "indexExpression": { "argumentTypes": null, - "id": 1088, + "id": 1169, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "1423:1:7", + "referencedDeclaration": 1156, + "src": "1425:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6399,14 +6361,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1415:10:7", + "src": "1417:10:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1399:26:7" + "src": "1401:26:9" }, { "expression": { @@ -6418,7 +6380,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1098, + "id": 1179, "isConstant": false, "isLValue": false, "isPure": false, @@ -6429,19 +6391,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1094, + "id": 1175, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1092, + "id": 1173, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "1447:5:7", + "referencedDeclaration": 1167, + "src": "1449:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6452,14 +6414,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1093, + "id": 1174, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1456:1:7", + "src": "1458:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6467,7 +6429,7 @@ }, "value": "0" }, - "src": "1447:10:7", + "src": "1449:10:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6481,19 +6443,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1097, + "id": 1178, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1095, + "id": 1176, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "1461:5:7", + "referencedDeclaration": 1167, + "src": "1463:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6503,24 +6465,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1096, + "id": 1177, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "1470:15:7", + "referencedDeclaration": 1113, + "src": "1472:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1461:24:7", + "src": "1463:24:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "1447:38:7", + "src": "1449:38:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6529,14 +6491,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1099, + "id": 1180, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1487:32:7", + "src": "1489:32:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -6556,21 +6518,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1091, + "id": 1172, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1439:7:7", + "referencedDeclaration": 2663, + "src": "1441:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1100, + "id": 1181, "isConstant": false, "isLValue": false, "isPure": false, @@ -6578,15 +6540,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1439:81:7", + "src": "1441:81:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1101, + "id": 1182, "nodeType": "ExpressionStatement", - "src": "1439:81:7" + "src": "1441:81:9" }, { "expression": { @@ -6598,7 +6560,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1107, + "id": 1188, "isConstant": false, "isLValue": false, "isPure": false, @@ -6607,26 +6569,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1103, + "id": 1184, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "1586:6:7", + "referencedDeclaration": 1117, + "src": "1588:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1105, + "id": 1186, "indexExpression": { "argumentTypes": null, - "id": 1104, + "id": 1185, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "1593:5:7", + "referencedDeclaration": 1167, + "src": "1595:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6637,7 +6599,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1586:13:7", + "src": "1588:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6648,14 +6610,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1106, + "id": 1187, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1603:1:7", + "src": "1605:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6663,7 +6625,7 @@ }, "value": "0" }, - "src": "1586:18:7", + "src": "1588:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6672,14 +6634,14 @@ { "argumentTypes": null, "hexValue": "4475706c6963617465206f776e657220616464726573732070726f7669646564", - "id": 1108, + "id": 1189, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1606:34:7", + "src": "1608:34:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_a803fa289679098e38a7f1f6fe43056918c5ab5af07441cb8db77b949c165ca1", @@ -6699,21 +6661,21 @@ "typeString": "literal_string \"Duplicate owner address provided\"" } ], - "id": 1102, + "id": 1183, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1578:7:7", + "referencedDeclaration": 2663, + "src": "1580:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1109, + "id": 1190, "isConstant": false, "isLValue": false, "isPure": false, @@ -6721,20 +6683,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1578:63:7", + "src": "1580:63:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1110, + "id": 1191, "nodeType": "ExpressionStatement", - "src": "1578:63:7" + "src": "1580:63:9" }, { "expression": { "argumentTypes": null, - "id": 1115, + "id": 1196, "isConstant": false, "isLValue": false, "isPure": false, @@ -6743,26 +6705,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1111, + "id": 1192, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "1655:6:7", + "referencedDeclaration": 1117, + "src": "1657:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1113, + "id": 1194, "indexExpression": { "argumentTypes": null, - "id": 1112, + "id": 1193, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "1662:12:7", + "referencedDeclaration": 1152, + "src": "1664:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6773,7 +6735,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1655:20:7", + "src": "1657:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6783,43 +6745,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1114, + "id": 1195, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "1678:5:7", + "referencedDeclaration": 1167, + "src": "1680:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1655:28:7", + "src": "1657:28:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1116, + "id": 1197, "nodeType": "ExpressionStatement", - "src": "1655:28:7" + "src": "1657:28:9" }, { "expression": { "argumentTypes": null, - "id": 1119, + "id": 1200, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1117, + "id": 1198, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "1697:12:7", + "referencedDeclaration": 1152, + "src": "1699:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6829,26 +6791,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1118, + "id": 1199, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "1712:5:7", + "referencedDeclaration": 1167, + "src": "1714:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1697:20:7", + "src": "1699:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1120, + "id": 1201, "nodeType": "ExpressionStatement", - "src": "1697:20:7" + "src": "1699:20:9" } ] }, @@ -6858,19 +6820,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1081, + "id": 1162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1078, + "id": 1159, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "1315:1:7", + "referencedDeclaration": 1156, + "src": "1317:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6882,18 +6844,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1079, + "id": 1160, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "1319:7:7", + "referencedDeclaration": 1124, + "src": "1321:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1080, + "id": 1161, "isConstant": false, "isLValue": false, "isPure": false, @@ -6901,31 +6863,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1319:14:7", + "src": "1321:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1315:18:7", + "src": "1317:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1122, + "id": 1203, "initializationExpression": { "assignments": [ - 1075 + 1156 ], "declarations": [ { "constant": false, - "id": 1075, + "id": 1156, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "1300:9:7", + "scope": 1220, + "src": "1302:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6933,10 +6895,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1074, + "id": 1155, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1300:7:7", + "src": "1302:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6946,18 +6908,18 @@ "visibility": "internal" } ], - "id": 1077, + "id": 1158, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1076, + "id": 1157, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1312:1:7", + "src": "1314:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6966,12 +6928,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1300:13:7" + "src": "1302:13:9" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1083, + "id": 1164, "isConstant": false, "isLValue": false, "isPure": false, @@ -6979,15 +6941,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1335:3:7", + "src": "1337:3:9", "subExpression": { "argumentTypes": null, - "id": 1082, + "id": 1163, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "1335:1:7", + "referencedDeclaration": 1156, + "src": "1337:1:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6998,17 +6960,17 @@ "typeString": "uint256" } }, - "id": 1084, + "id": 1165, "nodeType": "ExpressionStatement", - "src": "1335:3:7" + "src": "1337:3:9" }, "nodeType": "ForStatement", - "src": "1295:433:7" + "src": "1297:433:9" }, { "expression": { "argumentTypes": null, - "id": 1127, + "id": 1208, "isConstant": false, "isLValue": false, "isPure": false, @@ -7017,26 +6979,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1123, + "id": 1204, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "1737:6:7", + "referencedDeclaration": 1117, + "src": "1739:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1125, + "id": 1206, "indexExpression": { "argumentTypes": null, - "id": 1124, + "id": 1205, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "1744:12:7", + "referencedDeclaration": 1152, + "src": "1746:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7047,7 +7009,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1737:20:7", + "src": "1739:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7057,43 +7019,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1126, + "id": 1207, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "1760:15:7", + "referencedDeclaration": 1113, + "src": "1762:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1737:38:7", + "src": "1739:38:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1128, + "id": 1209, "nodeType": "ExpressionStatement", - "src": "1737:38:7" + "src": "1739:38:9" }, { "expression": { "argumentTypes": null, - "id": 1132, + "id": 1213, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1129, + "id": 1210, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1038, - "src": "1785:10:7", + "referencedDeclaration": 1119, + "src": "1787:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7105,18 +7067,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1130, + "id": 1211, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "1798:7:7", + "referencedDeclaration": 1124, + "src": "1800:7:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1131, + "id": 1212, "isConstant": false, "isLValue": false, "isPure": false, @@ -7124,38 +7086,38 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1798:14:7", + "src": "1800:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1785:27:7", + "src": "1787:27:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1133, + "id": 1214, "nodeType": "ExpressionStatement", - "src": "1785:27:7" + "src": "1787:27:9" }, { "expression": { "argumentTypes": null, - "id": 1136, + "id": 1217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1134, + "id": 1215, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "1822:9:7", + "referencedDeclaration": 1121, + "src": "1824:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7165,31 +7127,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1135, + "id": 1216, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1045, - "src": "1834:10:7", + "referencedDeclaration": 1126, + "src": "1836:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "1822:22:7", + "src": "1824:22:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1137, + "id": 1218, "nodeType": "ExpressionStatement", - "src": "1822:22:7" + "src": "1824: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": 1139, + "id": 1220, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -7197,16 +7159,16 @@ "name": "setupOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 1046, + "id": 1127, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1043, + "id": 1124, "name": "_owners", "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "664:17:7", + "scope": 1220, + "src": "664:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7215,19 +7177,19 @@ }, "typeName": { "baseType": { - "id": 1041, + "id": 1122, "name": "address", "nodeType": "ElementaryTypeName", - "src": "664:7:7", + "src": "664:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1042, + "id": 1123, "length": null, "nodeType": "ArrayTypeName", - "src": "664:9:7", + "src": "664:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -7238,51 +7200,51 @@ }, { "constant": false, - "id": 1045, + "id": 1126, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1139, - "src": "683:16:7", + "scope": 1220, + "src": "683:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1044, - "name": "uint8", + "id": 1125, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "683:5:7", + "src": "683:7:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "663:37:7" + "src": "663:39:9" }, "payable": false, "returnParameters": { - "id": 1047, + "id": 1128, "nodeType": "ParameterList", "parameters": [], - "src": "722:0:7" + "src": "724:0:9" }, - "scope": 1432, - "src": "643:1208:7", + "scope": 1511, + "src": "643:1210:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1193, + "id": 1274, "nodeType": "Block", - "src": "2193:491:7", + "src": "2197:491:9", "statements": [ { "expression": { @@ -7294,7 +7256,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1155, + "id": 1236, "isConstant": false, "isLValue": false, "isPure": false, @@ -7305,19 +7267,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1151, + "id": 1232, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1149, + "id": 1230, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "2252:5:7", + "referencedDeclaration": 1222, + "src": "2256:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7328,14 +7290,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1150, + "id": 1231, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2261:1:7", + "src": "2265:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7343,7 +7305,7 @@ }, "value": "0" }, - "src": "2252:10:7", + "src": "2256:10:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7357,19 +7319,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1154, + "id": 1235, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1152, + "id": 1233, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "2266:5:7", + "referencedDeclaration": 1222, + "src": "2270:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7379,24 +7341,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1153, + "id": 1234, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "2275:15:7", + "referencedDeclaration": 1113, + "src": "2279:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2266:24:7", + "src": "2270:24:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "2252:38:7", + "src": "2256:38:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7405,14 +7367,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1156, + "id": 1237, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2292:32:7", + "src": "2296:32:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -7432,21 +7394,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1148, + "id": 1229, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2244:7:7", + "referencedDeclaration": 2663, + "src": "2248:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1157, + "id": 1238, "isConstant": false, "isLValue": false, "isPure": false, @@ -7454,15 +7416,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2244:81:7", + "src": "2248:81:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1158, + "id": 1239, "nodeType": "ExpressionStatement", - "src": "2244:81:7" + "src": "2248:81:9" }, { "expression": { @@ -7474,7 +7436,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1164, + "id": 1245, "isConstant": false, "isLValue": false, "isPure": false, @@ -7483,26 +7445,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1160, + "id": 1241, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "2383:6:7", + "referencedDeclaration": 1117, + "src": "2387:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1162, + "id": 1243, "indexExpression": { "argumentTypes": null, - "id": 1161, + "id": 1242, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "2390:5:7", + "referencedDeclaration": 1222, + "src": "2394:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7513,7 +7475,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2383:13:7", + "src": "2387:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7524,14 +7486,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1163, + "id": 1244, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2400:1:7", + "src": "2404:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -7539,7 +7501,7 @@ }, "value": "0" }, - "src": "2383:18:7", + "src": "2387:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7548,14 +7510,14 @@ { "argumentTypes": null, "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1165, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2403:29:7", + "src": "2407:29:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", @@ -7575,21 +7537,21 @@ "typeString": "literal_string \"Address is already an owner\"" } ], - "id": 1159, + "id": 1240, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2375:7:7", + "referencedDeclaration": 2663, + "src": "2379:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1166, + "id": 1247, "isConstant": false, "isLValue": false, "isPure": false, @@ -7597,20 +7559,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2375:58:7", + "src": "2379:58:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1167, + "id": 1248, "nodeType": "ExpressionStatement", - "src": "2375:58:7" + "src": "2379:58:9" }, { "expression": { "argumentTypes": null, - "id": 1174, + "id": 1255, "isConstant": false, "isLValue": false, "isPure": false, @@ -7619,26 +7581,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1168, + "id": 1249, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "2443:6:7", + "referencedDeclaration": 1117, + "src": "2447:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1170, + "id": 1251, "indexExpression": { "argumentTypes": null, - "id": 1169, + "id": 1250, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "2450:5:7", + "referencedDeclaration": 1222, + "src": "2454:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7649,7 +7611,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2443:13:7", + "src": "2447:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7661,26 +7623,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1171, + "id": 1252, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "2459:6:7", + "referencedDeclaration": 1117, + "src": "2463:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1173, + "id": 1254, "indexExpression": { "argumentTypes": null, - "id": 1172, + "id": 1253, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "2466:15:7", + "referencedDeclaration": 1113, + "src": "2470:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7691,26 +7653,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2459:23:7", + "src": "2463:23:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2443:39:7", + "src": "2447:39:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1175, + "id": 1256, "nodeType": "ExpressionStatement", - "src": "2443:39:7" + "src": "2447:39:9" }, { "expression": { "argumentTypes": null, - "id": 1180, + "id": 1261, "isConstant": false, "isLValue": false, "isPure": false, @@ -7719,26 +7681,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1176, + "id": 1257, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "2492:6:7", + "referencedDeclaration": 1117, + "src": "2496:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1178, + "id": 1259, "indexExpression": { "argumentTypes": null, - "id": 1177, + "id": 1258, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "2499:15:7", + "referencedDeclaration": 1113, + "src": "2503:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7749,7 +7711,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2492:23:7", + "src": "2496:23:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7759,31 +7721,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1179, + "id": 1260, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1141, - "src": "2518:5:7", + "referencedDeclaration": 1222, + "src": "2522:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2492:31:7", + "src": "2496:31:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1181, + "id": 1262, "nodeType": "ExpressionStatement", - "src": "2492:31:7" + "src": "2496:31:9" }, { "expression": { "argumentTypes": null, - "id": 1183, + "id": 1264, "isConstant": false, "isLValue": false, "isPure": false, @@ -7791,15 +7753,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2533:12:7", + "src": "2537:12:9", "subExpression": { "argumentTypes": null, - "id": 1182, + "id": 1263, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1038, - "src": "2533:10:7", + "referencedDeclaration": 1119, + "src": "2537:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7810,9 +7772,9 @@ "typeString": "uint256" } }, - "id": 1184, + "id": 1265, "nodeType": "ExpressionStatement", - "src": "2533:12:7" + "src": "2537:12:9" }, { "condition": { @@ -7821,19 +7783,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1187, + "id": 1268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1185, + "id": 1266, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "2613:9:7", + "referencedDeclaration": 1121, + "src": "2617:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7843,64 +7805,64 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1186, + "id": 1267, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1143, - "src": "2626:10:7", + "referencedDeclaration": 1224, + "src": "2630:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "2613:23:7", + "src": "2617:23:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1192, + "id": 1273, "nodeType": "IfStatement", - "src": "2609:68:7", + "src": "2613:68:9", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1189, + "id": 1270, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1143, - "src": "2666:10:7", + "referencedDeclaration": 1224, + "src": "2670:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 1188, + "id": 1269, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "2650:15:7", + "referencedDeclaration": 1439, + "src": "2654:15:9", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$returns$__$", - "typeString": "function (uint8)" + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" } }, - "id": 1190, + "id": 1271, "isConstant": false, "isLValue": false, "isPure": false, @@ -7908,58 +7870,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2650:27:7", + "src": "2654:27:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1191, + "id": 1272, "nodeType": "ExpressionStatement", - "src": "2650:27:7" + "src": "2654: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": 1194, + "id": 1275, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1146, + "id": 1227, "modifierName": { "argumentTypes": null, - "id": 1145, + "id": 1226, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "2178:10:7", + "referencedDeclaration": 1687, + "src": "2182:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2178:10:7" + "src": "2182:10:9" } ], "name": "addOwnerWithThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1144, + "id": 1225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1141, + "id": 1222, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "2122:13:7", + "scope": 1275, + "src": "2124:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7967,10 +7929,10 @@ "typeString": "address" }, "typeName": { - "id": 1140, + "id": 1221, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2122:7:7", + "src": "2124:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -7981,51 +7943,51 @@ }, { "constant": false, - "id": 1143, + "id": 1224, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1194, - "src": "2137:16:7", + "scope": 1275, + "src": "2139:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1142, - "name": "uint8", + "id": 1223, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2137:5:7", + "src": "2139:7:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "2121:33:7" + "src": "2123:35:9" }, "payable": false, "returnParameters": { - "id": 1147, + "id": 1228, "nodeType": "ParameterList", "parameters": [], - "src": "2193:0:7" + "src": "2197:0:9" }, - "scope": 1432, - "src": "2091:593:7", + "scope": 1511, + "src": "2093:595:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1259, + "id": 1340, "nodeType": "Block", - "src": "3137:670:7", + "src": "3143:670:9", "statements": [ { "expression": { @@ -8037,7 +7999,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1210, + "id": 1291, "isConstant": false, "isLValue": false, "isPure": false, @@ -8048,19 +8010,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1208, + "id": 1289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1206, + "id": 1287, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1038, - "src": "3232:10:7", + "referencedDeclaration": 1119, + "src": "3238:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8071,14 +8033,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1207, + "id": 1288, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3245:1:7", + "src": "3251:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -8086,7 +8048,7 @@ }, "value": "1" }, - "src": "3232:14:7", + "src": "3238:14:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8096,18 +8058,18 @@ "operator": ">=", "rightExpression": { "argumentTypes": null, - "id": 1209, + "id": 1290, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1200, - "src": "3250:10:7", + "referencedDeclaration": 1281, + "src": "3256:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "3232:28:7", + "src": "3238:28:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8116,14 +8078,14 @@ { "argumentTypes": null, "hexValue": "4e6577206f776e657220636f756e74206e6565647320746f206265206c6172676572207468616e206e6577207468726573686f6c64", - "id": 1211, + "id": 1292, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3262:55:7", + "src": "3268:55:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_839b4c4db845de24ec74ef067d85431087d6987a4c904418ee4f6ec699c02482", @@ -8143,21 +8105,21 @@ "typeString": "literal_string \"New owner count needs to be larger than new threshold\"" } ], - "id": 1205, + "id": 1286, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "3224:7:7", + "referencedDeclaration": 2663, + "src": "3230:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1212, + "id": 1293, "isConstant": false, "isLValue": false, "isPure": false, @@ -8165,15 +8127,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3224:94:7", + "src": "3230:94:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1213, + "id": 1294, "nodeType": "ExpressionStatement", - "src": "3224:94:7" + "src": "3230:94:9" }, { "expression": { @@ -8185,7 +8147,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1221, + "id": 1302, "isConstant": false, "isLValue": false, "isPure": false, @@ -8196,19 +8158,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1217, + "id": 1298, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1215, + "id": 1296, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "3416:5:7", + "referencedDeclaration": 1279, + "src": "3422:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8219,14 +8181,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1216, + "id": 1297, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3425:1:7", + "src": "3431:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8234,7 +8196,7 @@ }, "value": "0" }, - "src": "3416:10:7", + "src": "3422:10:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8248,19 +8210,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1220, + "id": 1301, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1218, + "id": 1299, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "3430:5:7", + "referencedDeclaration": 1279, + "src": "3436:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8270,24 +8232,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1219, + "id": 1300, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "3439:15:7", + "referencedDeclaration": 1113, + "src": "3445:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3430:24:7", + "src": "3436:24:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3416:38:7", + "src": "3422:38:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8296,14 +8258,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1222, + "id": 1303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3456:32:7", + "src": "3462:32:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -8323,21 +8285,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1214, + "id": 1295, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "3408:7:7", + "referencedDeclaration": 2663, + "src": "3414:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1223, + "id": 1304, "isConstant": false, "isLValue": false, "isPure": false, @@ -8345,15 +8307,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3408:81:7", + "src": "3414:81:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1224, + "id": 1305, "nodeType": "ExpressionStatement", - "src": "3408:81:7" + "src": "3414:81:9" }, { "expression": { @@ -8365,7 +8327,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1230, + "id": 1311, "isConstant": false, "isLValue": false, "isPure": false, @@ -8374,26 +8336,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1226, + "id": 1307, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "3507:6:7", + "referencedDeclaration": 1117, + "src": "3513:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1228, + "id": 1309, "indexExpression": { "argumentTypes": null, - "id": 1227, + "id": 1308, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "3514:9:7", + "referencedDeclaration": 1277, + "src": "3520:9:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8404,7 +8366,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3507:17:7", + "src": "3513:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8414,18 +8376,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1229, + "id": 1310, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "3528:5:7", + "referencedDeclaration": 1279, + "src": "3534:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3507:26:7", + "src": "3513:26:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -8434,14 +8396,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1231, + "id": 1312, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3535:40:7", + "src": "3541:40:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", @@ -8461,21 +8423,21 @@ "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" } ], - "id": 1225, + "id": 1306, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "3499:7:7", + "referencedDeclaration": 2663, + "src": "3505:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1232, + "id": 1313, "isConstant": false, "isLValue": false, "isPure": false, @@ -8483,20 +8445,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3499:77:7", + "src": "3505:77:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1233, + "id": 1314, "nodeType": "ExpressionStatement", - "src": "3499:77:7" + "src": "3505:77:9" }, { "expression": { "argumentTypes": null, - "id": 1240, + "id": 1321, "isConstant": false, "isLValue": false, "isPure": false, @@ -8505,26 +8467,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1234, + "id": 1315, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "3586:6:7", + "referencedDeclaration": 1117, + "src": "3592:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1236, + "id": 1317, "indexExpression": { "argumentTypes": null, - "id": 1235, + "id": 1316, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1196, - "src": "3593:9:7", + "referencedDeclaration": 1277, + "src": "3599:9:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8535,7 +8497,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3586:17:7", + "src": "3592:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8547,26 +8509,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1237, + "id": 1318, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "3606:6:7", + "referencedDeclaration": 1117, + "src": "3612:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1239, + "id": 1320, "indexExpression": { "argumentTypes": null, - "id": 1238, + "id": 1319, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "3613:5:7", + "referencedDeclaration": 1279, + "src": "3619:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8577,26 +8539,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3606:13:7", + "src": "3612:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "3586:33:7", + "src": "3592:33:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1241, + "id": 1322, "nodeType": "ExpressionStatement", - "src": "3586:33:7" + "src": "3592:33:9" }, { "expression": { "argumentTypes": null, - "id": 1246, + "id": 1327, "isConstant": false, "isLValue": false, "isPure": false, @@ -8605,26 +8567,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1242, + "id": 1323, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "3629:6:7", + "referencedDeclaration": 1117, + "src": "3635:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1244, + "id": 1325, "indexExpression": { "argumentTypes": null, - "id": 1243, + "id": 1324, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1198, - "src": "3636:5:7", + "referencedDeclaration": 1279, + "src": "3642:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8635,7 +8597,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "3629:13:7", + "src": "3635:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8646,14 +8608,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1245, + "id": 1326, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3645:1:7", + "src": "3651:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -8661,20 +8623,20 @@ }, "value": "0" }, - "src": "3629:17:7", + "src": "3635:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1247, + "id": 1328, "nodeType": "ExpressionStatement", - "src": "3629:17:7" + "src": "3635:17:9" }, { "expression": { "argumentTypes": null, - "id": 1249, + "id": 1330, "isConstant": false, "isLValue": false, "isPure": false, @@ -8682,15 +8644,15 @@ "nodeType": "UnaryOperation", "operator": "--", "prefix": false, - "src": "3656:12:7", + "src": "3662:12:9", "subExpression": { "argumentTypes": null, - "id": 1248, + "id": 1329, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1038, - "src": "3656:10:7", + "referencedDeclaration": 1119, + "src": "3662:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8701,9 +8663,9 @@ "typeString": "uint256" } }, - "id": 1250, + "id": 1331, "nodeType": "ExpressionStatement", - "src": "3656:12:7" + "src": "3662:12:9" }, { "condition": { @@ -8712,19 +8674,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1253, + "id": 1334, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1251, + "id": 1332, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "3736:9:7", + "referencedDeclaration": 1121, + "src": "3742:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8734,64 +8696,64 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1252, + "id": 1333, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1200, - "src": "3749:10:7", + "referencedDeclaration": 1281, + "src": "3755:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "3736:23:7", + "src": "3742:23:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 1258, + "id": 1339, "nodeType": "IfStatement", - "src": "3732:68:7", + "src": "3738:68:9", "trueBody": { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1255, + "id": 1336, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1200, - "src": "3789:10:7", + "referencedDeclaration": 1281, + "src": "3795:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } ], - "id": 1254, + "id": 1335, "name": "changeThreshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "3773:15:7", + "referencedDeclaration": 1439, + "src": "3779:15:9", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint8_$returns$__$", - "typeString": "function (uint8)" + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" } }, - "id": 1256, + "id": 1337, "isConstant": false, "isLValue": false, "isPure": false, @@ -8799,58 +8761,58 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3773:27:7", + "src": "3779:27:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1257, + "id": 1338, "nodeType": "ExpressionStatement", - "src": "3773:27:7" + "src": "3779: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": 1260, + "id": 1341, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1203, + "id": 1284, "modifierName": { "argumentTypes": null, - "id": 1202, + "id": 1283, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "3122:10:7", + "referencedDeclaration": 1687, + "src": "3128:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "3122:10:7" + "src": "3128:10:9" } ], "name": "removeOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1201, + "id": 1282, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1196, + "id": 1277, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1260, - "src": "3047:17:7", + "scope": 1341, + "src": "3051:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8858,10 +8820,10 @@ "typeString": "address" }, "typeName": { - "id": 1195, + "id": 1276, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3047:7:7", + "src": "3051:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8872,11 +8834,11 @@ }, { "constant": false, - "id": 1198, + "id": 1279, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1260, - "src": "3066:13:7", + "scope": 1341, + "src": "3070:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8884,10 +8846,10 @@ "typeString": "address" }, "typeName": { - "id": 1197, + "id": 1278, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3066:7:7", + "src": "3070:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8898,51 +8860,51 @@ }, { "constant": false, - "id": 1200, + "id": 1281, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1260, - "src": "3081:16:7", + "scope": 1341, + "src": "3085:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1199, - "name": "uint8", + "id": 1280, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3081:5:7", + "src": "3085:7:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "3046:52:7" + "src": "3050:54:9" }, "payable": false, "returnParameters": { - "id": 1204, + "id": 1285, "nodeType": "ParameterList", "parameters": [], - "src": "3137:0:7" + "src": "3143:0:9" }, - "scope": 1432, - "src": "3026:781:7", + "scope": 1511, + "src": "3030:783:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1331, + "id": 1412, "nodeType": "Block", - "src": "4253:639:7", + "src": "4259:639:9", "statements": [ { "expression": { @@ -8954,7 +8916,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1278, + "id": 1359, "isConstant": false, "isLValue": false, "isPure": false, @@ -8965,19 +8927,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1274, + "id": 1355, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1272, + "id": 1353, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "4312:8:7", + "referencedDeclaration": 1347, + "src": "4318:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -8988,14 +8950,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1273, + "id": 1354, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4324:1:7", + "src": "4330:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9003,7 +8965,7 @@ }, "value": "0" }, - "src": "4312:13:7", + "src": "4318:13:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9017,19 +8979,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1277, + "id": 1358, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1275, + "id": 1356, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "4329:8:7", + "referencedDeclaration": 1347, + "src": "4335:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9039,24 +9001,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1276, + "id": 1357, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "4341:15:7", + "referencedDeclaration": 1113, + "src": "4347:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4329:27:7", + "src": "4335:27:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4312:44:7", + "src": "4318:44:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9065,14 +9027,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1279, + "id": 1360, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4358:32:7", + "src": "4364:32:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -9092,21 +9054,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1271, + "id": 1352, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "4304:7:7", + "referencedDeclaration": 2663, + "src": "4310:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1280, + "id": 1361, "isConstant": false, "isLValue": false, "isPure": false, @@ -9114,15 +9076,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4304:87:7", + "src": "4310:87:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1281, + "id": 1362, "nodeType": "ExpressionStatement", - "src": "4304:87:7" + "src": "4310:87:9" }, { "expression": { @@ -9134,7 +9096,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1287, + "id": 1368, "isConstant": false, "isLValue": false, "isPure": false, @@ -9143,26 +9105,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1283, + "id": 1364, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "4449:6:7", + "referencedDeclaration": 1117, + "src": "4455:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1285, + "id": 1366, "indexExpression": { "argumentTypes": null, - "id": 1284, + "id": 1365, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "4456:8:7", + "referencedDeclaration": 1347, + "src": "4462:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9173,7 +9135,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4449:16:7", + "src": "4455:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9184,14 +9146,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1286, + "id": 1367, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4469:1:7", + "src": "4475:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9199,7 +9161,7 @@ }, "value": "0" }, - "src": "4449:21:7", + "src": "4455:21:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9208,14 +9170,14 @@ { "argumentTypes": null, "hexValue": "4164647265737320697320616c726561647920616e206f776e6572", - "id": 1288, + "id": 1369, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4472:29:7", + "src": "4478:29:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_9d461d71e19b25cd406798d062d7e61f961ad52541d3077a543e857810427d47", @@ -9235,21 +9197,21 @@ "typeString": "literal_string \"Address is already an owner\"" } ], - "id": 1282, + "id": 1363, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "4441:7:7", + "referencedDeclaration": 2663, + "src": "4447:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1289, + "id": 1370, "isConstant": false, "isLValue": false, "isPure": false, @@ -9257,15 +9219,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4441:61:7", + "src": "4447:61:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1290, + "id": 1371, "nodeType": "ExpressionStatement", - "src": "4441:61:7" + "src": "4447:61:9" }, { "expression": { @@ -9277,7 +9239,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 1298, + "id": 1379, "isConstant": false, "isLValue": false, "isPure": false, @@ -9288,19 +9250,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1294, + "id": 1375, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1292, + "id": 1373, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1264, - "src": "4603:8:7", + "referencedDeclaration": 1345, + "src": "4609:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9311,14 +9273,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1293, + "id": 1374, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4615:1:7", + "src": "4621:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9326,7 +9288,7 @@ }, "value": "0" }, - "src": "4603:13:7", + "src": "4609:13:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9340,19 +9302,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1297, + "id": 1378, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1295, + "id": 1376, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1264, - "src": "4620:8:7", + "referencedDeclaration": 1345, + "src": "4626:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9362,24 +9324,24 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1296, + "id": 1377, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "4632:15:7", + "referencedDeclaration": 1113, + "src": "4638:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4620:27:7", + "src": "4626:27:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "4603:44:7", + "src": "4609:44:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9388,14 +9350,14 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206f776e657220616464726573732070726f7669646564", - "id": 1299, + "id": 1380, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4649:32:7", + "src": "4655:32:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_21a1cd38818adb750881fbf07c26ce7223dde608fdd9dadd31a0d41afeca2094", @@ -9415,21 +9377,21 @@ "typeString": "literal_string \"Invalid owner address provided\"" } ], - "id": 1291, + "id": 1372, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "4595:7:7", + "referencedDeclaration": 2663, + "src": "4601:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1300, + "id": 1381, "isConstant": false, "isLValue": false, "isPure": false, @@ -9437,15 +9399,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4595:87:7", + "src": "4601:87:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1301, + "id": 1382, "nodeType": "ExpressionStatement", - "src": "4595:87:7" + "src": "4601:87:9" }, { "expression": { @@ -9457,7 +9419,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1307, + "id": 1388, "isConstant": false, "isLValue": false, "isPure": false, @@ -9466,26 +9428,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1303, + "id": 1384, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "4700:6:7", + "referencedDeclaration": 1117, + "src": "4706:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1305, + "id": 1386, "indexExpression": { "argumentTypes": null, - "id": 1304, + "id": 1385, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "4707:9:7", + "referencedDeclaration": 1343, + "src": "4713:9:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9496,7 +9458,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4700:17:7", + "src": "4706:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9506,18 +9468,18 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 1306, + "id": 1387, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1264, - "src": "4721:8:7", + "referencedDeclaration": 1345, + "src": "4727:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4700:29:7", + "src": "4706:29:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -9526,14 +9488,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420707265764f776e65722c206f776e657220706169722070726f7669646564", - "id": 1308, + "id": 1389, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4731:40:7", + "src": "4737:40:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_960698caed81fce71c9b7d572ab2e035b6014a5b812b51df8462ea9817fc4ebc", @@ -9553,21 +9515,21 @@ "typeString": "literal_string \"Invalid prevOwner, owner pair provided\"" } ], - "id": 1302, + "id": 1383, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "4692:7:7", + "referencedDeclaration": 2663, + "src": "4698:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1309, + "id": 1390, "isConstant": false, "isLValue": false, "isPure": false, @@ -9575,20 +9537,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4692:80:7", + "src": "4698:80:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1310, + "id": 1391, "nodeType": "ExpressionStatement", - "src": "4692:80:7" + "src": "4698:80:9" }, { "expression": { "argumentTypes": null, - "id": 1317, + "id": 1398, "isConstant": false, "isLValue": false, "isPure": false, @@ -9597,26 +9559,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1311, + "id": 1392, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "4782:6:7", + "referencedDeclaration": 1117, + "src": "4788:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1313, + "id": 1394, "indexExpression": { "argumentTypes": null, - "id": 1312, + "id": 1393, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "4789:8:7", + "referencedDeclaration": 1347, + "src": "4795:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9627,7 +9589,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4782:16:7", + "src": "4788:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9639,26 +9601,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1314, + "id": 1395, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "4801:6:7", + "referencedDeclaration": 1117, + "src": "4807:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1316, + "id": 1397, "indexExpression": { "argumentTypes": null, - "id": 1315, + "id": 1396, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1264, - "src": "4808:8:7", + "referencedDeclaration": 1345, + "src": "4814:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9669,26 +9631,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4801:16:7", + "src": "4807:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4782:35:7", + "src": "4788:35:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1318, + "id": 1399, "nodeType": "ExpressionStatement", - "src": "4782:35:7" + "src": "4788:35:9" }, { "expression": { "argumentTypes": null, - "id": 1323, + "id": 1404, "isConstant": false, "isLValue": false, "isPure": false, @@ -9697,26 +9659,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1319, + "id": 1400, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "4827:6:7", + "referencedDeclaration": 1117, + "src": "4833:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1321, + "id": 1402, "indexExpression": { "argumentTypes": null, - "id": 1320, + "id": 1401, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "4834:9:7", + "referencedDeclaration": 1343, + "src": "4840:9:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9727,7 +9689,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4827:17:7", + "src": "4833:17:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9737,31 +9699,31 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1322, + "id": 1403, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1266, - "src": "4847:8:7", + "referencedDeclaration": 1347, + "src": "4853:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4827:28:7", + "src": "4833:28:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1324, + "id": 1405, "nodeType": "ExpressionStatement", - "src": "4827:28:7" + "src": "4833:28:9" }, { "expression": { "argumentTypes": null, - "id": 1329, + "id": 1410, "isConstant": false, "isLValue": false, "isPure": false, @@ -9770,26 +9732,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1325, + "id": 1406, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "4865:6:7", + "referencedDeclaration": 1117, + "src": "4871:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1327, + "id": 1408, "indexExpression": { "argumentTypes": null, - "id": 1326, + "id": 1407, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1264, - "src": "4872:8:7", + "referencedDeclaration": 1345, + "src": "4878:8:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9800,7 +9762,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4865:16:7", + "src": "4871:16:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9811,14 +9773,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1328, + "id": 1409, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4884:1:7", + "src": "4890:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -9826,57 +9788,57 @@ }, "value": "0" }, - "src": "4865:20:7", + "src": "4871:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1330, + "id": 1411, "nodeType": "ExpressionStatement", - "src": "4865:20:7" + "src": "4871: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": 1332, + "id": 1413, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1269, + "id": 1350, "modifierName": { "argumentTypes": null, - "id": 1268, + "id": 1349, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "4238:10:7", + "referencedDeclaration": 1687, + "src": "4244:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "4238:10:7" + "src": "4244:10:9" } ], "name": "swapOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1267, + "id": 1348, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1262, + "id": 1343, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 1332, - "src": "4160:17:7", + "scope": 1413, + "src": "4166:17:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9884,10 +9846,10 @@ "typeString": "address" }, "typeName": { - "id": 1261, + "id": 1342, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4160:7:7", + "src": "4166:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9898,11 +9860,11 @@ }, { "constant": false, - "id": 1264, + "id": 1345, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 1332, - "src": "4179:16:7", + "scope": 1413, + "src": "4185:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9910,10 +9872,10 @@ "typeString": "address" }, "typeName": { - "id": 1263, + "id": 1344, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4179:7:7", + "src": "4185:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9924,11 +9886,11 @@ }, { "constant": false, - "id": 1266, + "id": 1347, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 1332, - "src": "4197:16:7", + "scope": 1413, + "src": "4203:16:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9936,10 +9898,10 @@ "typeString": "address" }, "typeName": { - "id": 1265, + "id": 1346, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4197:7:7", + "src": "4203:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9949,26 +9911,26 @@ "visibility": "internal" } ], - "src": "4159:55:7" + "src": "4165:55:9" }, "payable": false, "returnParameters": { - "id": 1270, + "id": 1351, "nodeType": "ParameterList", "parameters": [], - "src": "4253:0:7" + "src": "4259:0:9" }, - "scope": 1432, - "src": "4141:751:7", + "scope": 1511, + "src": "4147:751:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1357, + "id": 1438, "nodeType": "Block", - "src": "5162:316:7", + "src": "5170:316:9", "statements": [ { "expression": { @@ -9980,40 +9942,40 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1342, + "id": 1423, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1340, + "id": 1421, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "5249:10:7", + "referencedDeclaration": 1415, + "src": "5257:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "<=", "rightExpression": { "argumentTypes": null, - "id": 1341, + "id": 1422, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1038, - "src": "5263:10:7", + "referencedDeclaration": 1119, + "src": "5271:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5249:24:7", + "src": "5257:24:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10022,14 +9984,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f7420657863656564206f776e657220636f756e74", - "id": 1343, + "id": 1424, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5275:37:7", + "src": "5283:37:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_63d26a9feb8568677e5c255c04e4da88e86a25137d5152a9a089790b7e710e86", @@ -10049,21 +10011,21 @@ "typeString": "literal_string \"Threshold cannot exceed owner count\"" } ], - "id": 1339, + "id": 1420, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "5241:7:7", + "referencedDeclaration": 2663, + "src": "5249:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1344, + "id": 1425, "isConstant": false, "isLValue": false, "isPure": false, @@ -10071,15 +10033,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5241:72:7", + "src": "5249:72:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1345, + "id": 1426, "nodeType": "ExpressionStatement", - "src": "5241:72:7" + "src": "5249:72:9" }, { "expression": { @@ -10088,25 +10050,25 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 1349, + "id": 1430, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1347, + "id": 1428, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "5383:10:7", + "referencedDeclaration": 1415, + "src": "5391:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", @@ -10114,14 +10076,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "31", - "id": 1348, + "id": 1429, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5397:1:7", + "src": "5405:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -10129,7 +10091,7 @@ }, "value": "1" }, - "src": "5383:15:7", + "src": "5391:15:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10138,14 +10100,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c64206e6565647320746f2062652067726561746572207468616e2030", - "id": 1350, + "id": 1431, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5400:38:7", + "src": "5408:38:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b995394ed6031392a784e6dd5e04285cca83077a8dc3873d2fb7fcb090297ab4", @@ -10165,21 +10127,21 @@ "typeString": "literal_string \"Threshold needs to be greater than 0\"" } ], - "id": 1346, + "id": 1427, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "5375:7:7", + "referencedDeclaration": 2663, + "src": "5383:7:9", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1351, + "id": 1432, "isConstant": false, "isLValue": false, "isPure": false, @@ -10187,32 +10149,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5375:64:7", + "src": "5383:64:9", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1352, + "id": 1433, "nodeType": "ExpressionStatement", - "src": "5375:64:7" + "src": "5383:64:9" }, { "expression": { "argumentTypes": null, - "id": 1355, + "id": 1436, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1353, + "id": 1434, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "5449:9:7", + "referencedDeclaration": 1121, + "src": "5457:9:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10222,170 +10184,132 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1354, + "id": 1435, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "5461:10:7", + "referencedDeclaration": 1415, + "src": "5469:10:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "5449:22:7", + "src": "5457:22:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1356, + "id": 1437, "nodeType": "ExpressionStatement", - "src": "5449:22:7" + "src": "5457: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": 1358, + "id": 1439, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 1337, + "id": 1418, "modifierName": { "argumentTypes": null, - "id": 1336, + "id": 1417, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1448, - "src": "5147:10:7", + "referencedDeclaration": 1687, + "src": "5155:10:9", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "5147:10:7" + "src": "5155:10:9" } ], "name": "changeThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1335, + "id": 1416, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1334, + "id": 1415, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 1358, - "src": "5106:16:7", + "scope": 1439, + "src": "5112:18:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1333, - "name": "uint8", + "id": 1414, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5106:5:7", + "src": "5112:7:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "5105:18:7" + "src": "5111:20:9" }, "payable": false, "returnParameters": { - "id": 1338, + "id": 1419, "nodeType": "ParameterList", "parameters": [], - "src": "5162:0:7" + "src": "5170:0:9" }, - "scope": 1432, - "src": "5081:397:7", + "scope": 1511, + "src": "5087:399:9", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1367, + "id": 1446, "nodeType": "Block", - "src": "5564:40:7", + "src": "5574:33:9", "statements": [ { "expression": { "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1364, - "name": "threshold", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "5587:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1363, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5581:5:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint8_$", - "typeString": "type(uint8)" - }, - "typeName": "uint8" - }, - "id": 1365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5581:16:7", + "id": 1444, + "name": "threshold", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1121, + "src": "5591:9:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "functionReturnParameters": 1362, - "id": 1366, + "functionReturnParameters": 1443, + "id": 1445, "nodeType": "Return", - "src": "5574:23:7" + "src": "5584:16:9" } ] }, "documentation": null, - "id": 1368, + "id": 1447, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -10393,56 +10317,56 @@ "name": "getThreshold", "nodeType": "FunctionDefinition", "parameters": { - "id": 1359, + "id": 1440, "nodeType": "ParameterList", "parameters": [], - "src": "5505:2:7" + "src": "5513:2:9" }, "payable": false, "returnParameters": { - "id": 1362, + "id": 1443, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1361, + "id": 1442, "name": "", "nodeType": "VariableDeclaration", - "scope": 1368, - "src": "5553:5:7", + "scope": 1447, + "src": "5561:7:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1360, - "name": "uint8", + "id": 1441, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5553:5:7", + "src": "5561:7:9", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "5552:7:7" + "src": "5560:9:9" }, - "scope": 1432, - "src": "5484:120:7", + "scope": 1511, + "src": "5492:115:9", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1381, + "id": 1460, "nodeType": "Block", - "src": "5697:42:7", + "src": "5700:42:9", "statements": [ { "expression": { @@ -10451,7 +10375,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1379, + "id": 1458, "isConstant": false, "isLValue": false, "isPure": false, @@ -10460,26 +10384,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1375, + "id": 1454, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "5714:6:7", + "referencedDeclaration": 1117, + "src": "5717:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1377, + "id": 1456, "indexExpression": { "argumentTypes": null, - "id": 1376, + "id": 1455, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1370, - "src": "5721:5:7", + "referencedDeclaration": 1449, + "src": "5724:5:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10490,7 +10414,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5714:13:7", + "src": "5717:13:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10501,14 +10425,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1378, + "id": 1457, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5731:1:7", + "src": "5734:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10516,21 +10440,21 @@ }, "value": "0" }, - "src": "5714:18:7", + "src": "5717:18:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1374, - "id": 1380, + "functionReturnParameters": 1453, + "id": 1459, "nodeType": "Return", - "src": "5707:25:7" + "src": "5710:25:9" } ] }, "documentation": null, - "id": 1382, + "id": 1461, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -10538,16 +10462,16 @@ "name": "isOwner", "nodeType": "FunctionDefinition", "parameters": { - "id": 1371, + "id": 1450, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1370, + "id": 1449, "name": "owner", "nodeType": "VariableDeclaration", - "scope": 1382, - "src": "5627:13:7", + "scope": 1461, + "src": "5630:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10555,10 +10479,10 @@ "typeString": "address" }, "typeName": { - "id": 1369, + "id": 1448, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5627:7:7", + "src": "5630:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10568,20 +10492,20 @@ "visibility": "internal" } ], - "src": "5626:15:7" + "src": "5629:15:9" }, "payable": false, "returnParameters": { - "id": 1374, + "id": 1453, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1373, + "id": 1452, "name": "", "nodeType": "VariableDeclaration", - "scope": 1382, - "src": "5687:4:7", + "scope": 1461, + "src": "5690:4:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10589,10 +10513,10 @@ "typeString": "bool" }, "typeName": { - "id": 1372, + "id": 1451, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5687:4:7", + "src": "5690:4:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10602,32 +10526,32 @@ "visibility": "internal" } ], - "src": "5686:6:7" + "src": "5689:6:9" }, - "scope": 1432, - "src": "5610:129:7", + "scope": 1511, + "src": "5613:129:9", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1430, + "id": 1509, "nodeType": "Block", - "src": "5902:377:7", + "src": "5905:377:9", "statements": [ { "assignments": [ - 1391 + 1470 ], "declarations": [ { "constant": false, - "id": 1391, + "id": 1470, "name": "array", "nodeType": "VariableDeclaration", - "scope": 1431, - "src": "5912:22:7", + "scope": 1510, + "src": "5915:22:9", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -10636,19 +10560,19 @@ }, "typeName": { "baseType": { - "id": 1389, + "id": 1468, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5912:7:7", + "src": "5915:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1390, + "id": 1469, "length": null, "nodeType": "ArrayTypeName", - "src": "5912:9:7", + "src": "5915:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -10658,18 +10582,18 @@ "visibility": "internal" } ], - "id": 1397, + "id": 1476, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1395, + "id": 1474, "name": "ownerCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1038, - "src": "5951:10:7", + "referencedDeclaration": 1119, + "src": "5954:10:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10683,39 +10607,39 @@ "typeString": "uint256" } ], - "id": 1394, + "id": 1473, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "5937:13:7", + "src": "5940: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": 1392, + "id": 1471, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5941:7:7", + "src": "5944:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1393, + "id": 1472, "length": null, "nodeType": "ArrayTypeName", - "src": "5941:9:7", + "src": "5944:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 1396, + "id": 1475, "isConstant": false, "isLValue": false, "isPure": false, @@ -10723,27 +10647,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5937:25:7", + "src": "5940:25:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory", "typeString": "address[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5912:50:7" + "src": "5915:50:9" }, { "assignments": [ - 1399 + 1478 ], "declarations": [ { "constant": false, - "id": 1399, + "id": 1478, "name": "index", "nodeType": "VariableDeclaration", - "scope": 1431, - "src": "6006:13:7", + "scope": 1510, + "src": "6009:13:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10751,10 +10675,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1398, + "id": 1477, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6006:7:7", + "src": "6009:7:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10764,18 +10688,18 @@ "visibility": "internal" } ], - "id": 1401, + "id": 1480, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 1400, + "id": 1479, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6022:1:7", + "src": "6025:1:9", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -10784,20 +10708,20 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6006:17:7" + "src": "6009:17:9" }, { "assignments": [ - 1403 + 1482 ], "declarations": [ { "constant": false, - "id": 1403, + "id": 1482, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1431, - "src": "6033:20:7", + "scope": 1510, + "src": "6036:20:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10805,10 +10729,10 @@ "typeString": "address" }, "typeName": { - "id": 1402, + "id": 1481, "name": "address", "nodeType": "ElementaryTypeName", - "src": "6033:7:7", + "src": "6036:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10818,31 +10742,31 @@ "visibility": "internal" } ], - "id": 1407, + "id": 1486, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1404, + "id": 1483, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "6056:6:7", + "referencedDeclaration": 1117, + "src": "6059:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1406, + "id": 1485, "indexExpression": { "argumentTypes": null, - "id": 1405, + "id": 1484, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "6063:15:7", + "referencedDeclaration": 1113, + "src": "6066:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10853,25 +10777,25 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6056:23:7", + "src": "6059:23:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "6033:46:7" + "src": "6036:46:9" }, { "body": { - "id": 1426, + "id": 1505, "nodeType": "Block", - "src": "6128:123:7", + "src": "6131:123:9", "statements": [ { "expression": { "argumentTypes": null, - "id": 1415, + "id": 1494, "isConstant": false, "isLValue": false, "isPure": false, @@ -10880,26 +10804,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1411, + "id": 1490, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "6142:5:7", + "referencedDeclaration": 1470, + "src": "6145:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 1413, + "id": 1492, "indexExpression": { "argumentTypes": null, - "id": 1412, + "id": 1491, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1399, - "src": "6148:5:7", + "referencedDeclaration": 1478, + "src": "6151:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10910,7 +10834,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6142:12:7", + "src": "6145:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10920,43 +10844,43 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1414, + "id": 1493, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "6157:12:7", + "referencedDeclaration": 1482, + "src": "6160:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6142:27:7", + "src": "6145:27:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1416, + "id": 1495, "nodeType": "ExpressionStatement", - "src": "6142:27:7" + "src": "6145:27:9" }, { "expression": { "argumentTypes": null, - "id": 1421, + "id": 1500, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1417, + "id": 1496, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "6183:12:7", + "referencedDeclaration": 1482, + "src": "6186:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10968,26 +10892,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1418, + "id": 1497, "name": "owners", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1036, - "src": "6198:6:7", + "referencedDeclaration": 1117, + "src": "6201:6:9", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_address_$", "typeString": "mapping(address => address)" } }, - "id": 1420, + "id": 1499, "indexExpression": { "argumentTypes": null, - "id": 1419, + "id": 1498, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "6205:12:7", + "referencedDeclaration": 1482, + "src": "6208:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10998,26 +10922,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6198:20:7", + "src": "6201:20:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6183:35:7", + "src": "6186:35:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1422, + "id": 1501, "nodeType": "ExpressionStatement", - "src": "6183:35:7" + "src": "6186:35:9" }, { "expression": { "argumentTypes": null, - "id": 1424, + "id": 1503, "isConstant": false, "isLValue": false, "isPure": false, @@ -11025,15 +10949,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6232:8:7", + "src": "6235:8:9", "subExpression": { "argumentTypes": null, - "id": 1423, + "id": 1502, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1399, - "src": "6232:5:7", + "referencedDeclaration": 1478, + "src": "6235:5:9", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11044,9 +10968,9 @@ "typeString": "uint256" } }, - "id": 1425, + "id": 1504, "nodeType": "ExpressionStatement", - "src": "6232:8:7" + "src": "6235:8:9" } ] }, @@ -11056,19 +10980,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1410, + "id": 1489, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1408, + "id": 1487, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1403, - "src": "6095:12:7", + "referencedDeclaration": 1482, + "src": "6098:12:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11078,50 +11002,50 @@ "operator": "!=", "rightExpression": { "argumentTypes": null, - "id": 1409, + "id": 1488, "name": "SENTINEL_OWNERS", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1032, - "src": "6111:15:7", + "referencedDeclaration": 1113, + "src": "6114:15:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6095:31:7", + "src": "6098:31:9", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1427, + "id": 1506, "nodeType": "WhileStatement", - "src": "6089:162:7" + "src": "6092:162:9" }, { "expression": { "argumentTypes": null, - "id": 1428, + "id": 1507, "name": "array", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "6267:5:7", + "referencedDeclaration": 1470, + "src": "6270:5:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "functionReturnParameters": 1387, - "id": 1429, + "functionReturnParameters": 1466, + "id": 1508, "nodeType": "Return", - "src": "6260:12:7" + "src": "6263:12:9" } ] }, "documentation": "@dev Returns array of owners.\n @return Array of Safe owners.", - "id": 1431, + "id": 1510, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -11129,23 +11053,23 @@ "name": "getOwners", "nodeType": "FunctionDefinition", "parameters": { - "id": 1383, + "id": 1462, "nodeType": "ParameterList", "parameters": [], - "src": "5839:2:7" + "src": "5842:2:9" }, "payable": false, "returnParameters": { - "id": 1387, + "id": 1466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1386, + "id": 1465, "name": "", "nodeType": "VariableDeclaration", - "scope": 1431, - "src": "5887:9:7", + "scope": 1510, + "src": "5890:9:9", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11154,19 +11078,19 @@ }, "typeName": { "baseType": { - "id": 1384, + "id": 1463, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5887:7:7", + "src": "5890:7:9", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1385, + "id": 1464, "length": null, "nodeType": "ArrayTypeName", - "src": "5887:9:7", + "src": "5890:9:9", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -11176,26 +11100,26 @@ "visibility": "internal" } ], - "src": "5886:11:7" + "src": "5889:11:9" }, - "scope": 1432, - "src": "5821:458:7", + "scope": 1511, + "src": "5824:458:9", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1433, - "src": "240:6041:7" + "scope": 1512, + "src": "240:6044:9" } ], - "src": "0:6282:7" + "src": "0:6285:9" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-20T07:57:27.022Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:56.484Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/PayingProxy.json b/safe-contracts/build/contracts/PayingProxy.json index 56b95009..bc4dae63 100644 --- a/safe-contracts/build/contracts/PayingProxy.json +++ b/safe-contracts/build/contracts/PayingProxy.json @@ -62,11 +62,11 @@ "type": "fallback" } ], - "bytecode": "0x608060405234801561001057600080fd5b50604051610502380380610502833981018060405281019080805190602001909291908051820192919060200180519060200190929190805190602001909291908051906020019092919050505084848160008173ffffffffffffffffffffffffffffffffffffffff1614151515610116576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000815111156101a35773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e600082141561019f573d81fd5b5050505b5050600081111561038357600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561022f578273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610229573d6000803e3d6000fd5b50610382565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156102d257600080fd5b505af11580156102e6573d6000803e3d6000fd5b505050506040513d60208110156102fc57600080fd5b81019080805190602001909291905050501515610381576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f436f756c64206e6f74206578656375746520746f6b656e207061796d656e740081525060200191505060405180910390fd5b5b5b505050505061016b806103976000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a723058207c0d46b157e8df6d783e305a80b9c841f620d4bf15b4e2b2c93f261b93e8d6fa0029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a723058207c0d46b157e8df6d783e305a80b9c841f620d4bf15b4e2b2c93f261b93e8d6fa0029", - "sourceMap": "452:940:10:-;;;924:466;8:9:-1;5:2;;;30:1;27;20:12;5:2;924:466:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1065:11;1078;668::0;593:1:11;578:11;:16;;;;570:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;658:11;645:10;;:24;;;;;;;;;;;;;;;;;;508:168;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:263;;;1179:1;1155:26;;:12;:26;;;1151:222;;;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:222;;;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:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1151:222;1120:263;924:466;;;;;452:940;;;;;;", - "deployedSourceMap": "452:940:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;955:42:11;951:1;945:8;941:57;1030:14;1027:1;1024;1011:34;1125:1;1122;1106:14;1103:1;1091:10;1086:3;1073:54;1161:16;1158:1;1155;1140:38;1206:1;1197:7;1194:14;1191:2;;;1221:16;1218:1;1211:27;1191:2;1263:16;1260:1;1253:27;1426:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1426:104:11;;;;;;;;;;;;;;;;;;;;;;;1302:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302:118:11;;;;;;;;;;;;;;;;;;;;;;;;;;;1426:104;1492:7;1522:1;1515:8;;1426:104;:::o;1302:118::-;1373:7;1403:10;;;;;;;;;;;1396:17;;1302: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), \"Could not execute token payment\");\n }\n } \n }\n}\n", + "bytecode": "0x608060405234801561001057600080fd5b5060405161060a38038061060a833981018060405281019080805190602001909291908051820192919060200180519060200190929190805190602001909291908051906020019092919050505084848160008173ffffffffffffffffffffffffffffffffffffffff1614151515610116576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000815111156101a35773ffffffffffffffffffffffffffffffffffffffff60005416600080835160208501846127105a03f46040513d6000823e600082141561019f573d81fd5b5050505b5050600081111561036d57600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156102b7578273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156102b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f436f756c64206e6f74207061792073616665206372656174696f6e207769746881526020017f206574686572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61036c565b6102d1828483610377640100000000026401000000009004565b151561036b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f436f756c64206e6f74207061792073616665206372656174696f6e207769746881526020017f20746f6b656e000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b5b5b5050505050610490565b600060608383604051602401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828152602001925050506040516020818303038152906040527fa9059cbb000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505090506000808251602084016000896127105a03f16040513d6000823e3d60008114610473576020811461047b5760009450610485565b829450610485565b8151158315171594505b505050509392505050565b61016b8061049f6000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820d7000b93834fa325b64ca1644682b27b7ca4e0c5b438f4481d7909f3d065bbeb0029", + "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680634555d5c91461008b5780635c60da1b146100b6575b73ffffffffffffffffffffffffffffffffffffffff600054163660008037600080366000845af43d6000803e6000811415610086573d6000fd5b3d6000f35b34801561009757600080fd5b506100a061010d565b6040518082815260200191505060405180910390f35b3480156100c257600080fd5b506100cb610116565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60006002905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050905600a165627a7a72305820d7000b93834fa325b64ca1644682b27b7ca4e0c5b438f4481d7909f3d065bbeb0029", + "sourceMap": "451:1072:10:-;;;945:576;8:9:-1;5:2;;;30:1;27;20:12;5:2;945:576:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1086:11;1099;668::0;593:1:11;578:11;:16;;;;570:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;658:11;645:10;;:24;;;;;;;;;;;;;;;;;;508:168;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;;1155:1:10;1145:7;:11;1141:373;;;1200:1;1176:26;;:12;:26;;;1172:332;;;1292:6;:11;;:20;1304:7;1292:20;;;;;;;;;;;;;;;;;;;;;;;1284:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1172:332;;;1402:44;1416:12;1430:6;1438:7;1402:13;;;:44;;;:::i;:::-;1394:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1172:332;1141:373;945:576;;;;;451:1072;;430:752:13;568:16;600:17;673:8;683:6;620:70;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;620:70:13;;;;;;;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;;;620:70:13;600:90;;867:1;864;857:4;851:11;844:4;838;834:15;831:1;824:5;816;811:3;807:15;802:67;899:4;893:11;940:14;937:1;932:3;917:38;975:14;1008:1;1003:33;;;;1054:4;1049:76;;;;1163:1;1148:16;;968:198;;1003:33;1027:7;1012:22;;1003:33;;1049:76;1116:3;1110:10;1103:18;1093:7;1086:15;1083:39;1076:47;1061:62;;968:198;;773:403;;;;;;;;:::o;451:1072:10:-;;;;;;;", + "deployedSourceMap": "451:1072:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;955:42:11;951:1;945:8;941:57;1030:14;1027:1;1024;1011:34;1125:1;1122;1106:14;1103:1;1091:10;1086:3;1073:54;1161:16;1158:1;1155;1140:38;1206:1;1197:7;1194:14;1191:2;;;1221:16;1218:1;1211:27;1191:2;1263:16;1260:1;1253:27;1426:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1426:104:11;;;;;;;;;;;;;;;;;;;;;;;1302:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1302:118:11;;;;;;;;;;;;;;;;;;;;;;;;;;;1426:104;1492:7;1522:1;1515:8;;1426:104;:::o;1302:118::-;1373:7;1403:10;;;;;;;;;;;1396:17;;1302:118;:::o", + "source": "pragma solidity 0.4.24;\nimport \"./DelegateConstructorProxy.sol\";\nimport \"./SecuredTokenTransfer.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, SecuredTokenTransfer {\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 // solium-disable-next-line security/no-send\n require(funder.send(payment), \"Could not pay safe creation with ether\");\n } else {\n require(transferToken(paymentToken, funder, payment), \"Could not pay safe creation with token\");\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", @@ -79,7 +79,7 @@ "nodeType": "SourceUnit", "nodes": [ { - "id": 1515, + "id": 1513, "literals": [ "solidity", "0.4", @@ -91,7 +91,7 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/DelegateConstructorProxy.sol", "file": "./DelegateConstructorProxy.sol", - "id": 1516, + "id": 1514, "nodeType": "ImportDirective", "scope": 1569, "sourceUnit": 24, @@ -100,13 +100,13 @@ "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ERC20Token.sol", - "file": "./interfaces/ERC20Token.sol", - "id": 1517, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", + "file": "./SecuredTokenTransfer.sol", + "id": 1515, "nodeType": "ImportDirective", "scope": 1569, - "sourceUnit": 1786, - "src": "65:37:10", + "sourceUnit": 1672, + "src": "65:36:10", "symbolAliases": [], "unitAlias": "" }, @@ -116,24 +116,43 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1518, + "id": 1516, "name": "DelegateConstructorProxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 23, - "src": "476:24:10", + "src": "475:24:10", "typeDescriptions": { "typeIdentifier": "t_contract$_DelegateConstructorProxy_$23", "typeString": "contract DelegateConstructorProxy" } }, + "id": 1517, + "nodeType": "InheritanceSpecifier", + "src": "475:24:10" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1518, + "name": "SecuredTokenTransfer", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1671, + "src": "501:20:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1671", + "typeString": "contract SecuredTokenTransfer" + } + }, "id": 1519, "nodeType": "InheritanceSpecifier", - "src": "476:24:10" + "src": "501:20:10" } ], "contractDependencies": [ 23, - 1611 + 1611, + 1671 ], "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 - ", @@ -141,6 +160,7 @@ "id": 1568, "linearizedBaseContracts": [ 1568, + 1671, 23, 1611 ], @@ -151,7 +171,7 @@ "body": { "id": 1566, "nodeType": "Block", - "src": "1110:280:10", + "src": "1131:390:10", "statements": [ { "condition": { @@ -172,7 +192,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1529, - "src": "1124:7:10", + "src": "1145:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -190,7 +210,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1134:1:10", + "src": "1155:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -198,7 +218,7 @@ }, "value": "0" }, - "src": "1124:11:10", + "src": "1145:11:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -207,11 +227,11 @@ "falseBody": null, "id": 1565, "nodeType": "IfStatement", - "src": "1120:263:10", + "src": "1141:373:10", "trueBody": { "id": 1564, "nodeType": "Block", - "src": "1137:246:10", + "src": "1158:356:10", "statements": [ { "condition": { @@ -232,7 +252,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, - "src": "1155:12:10", + "src": "1176:12:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -253,7 +273,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1179:1:10", + "src": "1200:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -275,7 +295,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1171:7:10", + "src": "1192:7:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -290,13 +310,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1171:10:10", + "src": "1192:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1155:26:10", + "src": "1176:26:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -305,7 +325,7 @@ "falseBody": { "id": 1562, "nodeType": "Block", - "src": "1246:127:10", + "src": "1376:128:10", "statements": [ { "expression": { @@ -314,6 +334,19 @@ { "argumentTypes": null, "arguments": [ + { + "argumentTypes": null, + "id": 1555, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1527, + "src": "1416:12:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, { "argumentTypes": null, "id": 1556, @@ -321,7 +354,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1525, - "src": "1306:6:10", + "src": "1430:6:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -334,7 +367,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1529, - "src": "1314:7:10", + "src": "1438:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -343,6 +376,10 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, { "typeIdentifier": "t_address", "typeString": "address" @@ -352,67 +389,15 @@ "typeString": "uint256" } ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1553, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1527, - "src": "1283:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1552, - "name": "ERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1785, - "src": "1272:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Token_$1785_$", - "typeString": "type(contract ERC20Token)" - } - }, - "id": 1554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1272:24:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Token_$1785", - "typeString": "contract ERC20Token" - } - }, - "id": 1555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1739, - "src": "1272:33:10", + "id": 1554, + "name": "transferToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1670, + "src": "1402:13:10", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" } }, "id": 1558, @@ -423,7 +408,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1272:50:10", + "src": "1402:44:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -431,7 +416,7 @@ }, { "argumentTypes": null, - "hexValue": "436f756c64206e6f74206578656375746520746f6b656e207061796d656e74", + "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e207769746820746f6b656e", "id": 1559, "isConstant": false, "isLValue": false, @@ -439,13 +424,13 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1324:33:10", + "src": "1448:40:10", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_56ee7cbc844d6a78f120ea6d555eb9afe8d3243b816d5489758d19d83ae941d2", - "typeString": "literal_string \"Could not execute token payment\"" + "typeIdentifier": "t_stringliteral_03e5f5a3fbd065ad357c2a53629b6dc528c3f7172cf25b2c45eb26f6e42b59c6", + "typeString": "literal_string \"Could not pay safe creation with token\"" }, - "value": "Could not execute token payment" + "value": "Could not pay safe creation with token" } ], "expression": { @@ -455,19 +440,19 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_56ee7cbc844d6a78f120ea6d555eb9afe8d3243b816d5489758d19d83ae941d2", - "typeString": "literal_string \"Could not execute token payment\"" + "typeIdentifier": "t_stringliteral_03e5f5a3fbd065ad357c2a53629b6dc528c3f7172cf25b2c45eb26f6e42b59c6", + "typeString": "literal_string \"Could not pay safe creation with token\"" } ], - "id": 1551, + "id": 1553, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "1264:7:10", + "referencedDeclaration": 2663, + "src": "1394:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" @@ -481,7 +466,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1264:94:10", + "src": "1394:95:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" @@ -489,17 +474,17 @@ }, "id": 1561, "nodeType": "ExpressionStatement", - "src": "1264:94:10" + "src": "1394:95:10" } ] }, "id": 1563, "nodeType": "IfStatement", - "src": "1151:222:10", + "src": "1172:332:10", "trueBody": { - "id": 1550, + "id": 1552, "nodeType": "Block", - "src": "1183:57:10", + "src": "1204:166:10", "statements": [ { "expression": { @@ -507,53 +492,114 @@ "arguments": [ { "argumentTypes": null, - "id": 1547, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1529, - "src": "1217:7:10", + "arguments": [ + { + "argumentTypes": null, + "id": 1547, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1529, + "src": "1304:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1545, + "name": "funder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1525, + "src": "1292:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "send", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1292:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) returns (bool)" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1292:20:10", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } + }, + { + "argumentTypes": null, + "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e2077697468206574686572", + "id": 1549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1314:40:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_001db5e0eea429a497fbb276b295895ba66824ab53239e68691cf332a945feab", + "typeString": "literal_string \"Could not pay safe creation with ether\"" + }, + "value": "Could not pay safe creation with ether" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_001db5e0eea429a497fbb276b295895ba66824ab53239e68691cf332a945feab", + "typeString": "literal_string \"Could not pay safe creation with ether\"" } ], - "expression": { - "argumentTypes": null, - "id": 1544, - "name": "funder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "1201:6:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1201:15:10", + "id": 1544, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2662, + 2663 + ], + "referencedDeclaration": 2663, + "src": "1284:7:10", "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 1548, + "id": 1550, "isConstant": false, "isLValue": false, "isPure": false, @@ -561,15 +607,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1201:24:10", + "src": "1284:71:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1549, + "id": 1551, "nodeType": "ExpressionStatement", - "src": "1201:24:10" + "src": "1284:71:10" } ] } @@ -594,7 +640,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1521, - "src": "1065:11:10", + "src": "1086:11:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -607,7 +653,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1523, - "src": "1078:11:10", + "src": "1099:11:10", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -622,14 +668,14 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 23, - "src": "1040:24:10", + "src": "1061:24:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DelegateConstructorProxy_$23_$", "typeString": "type(contract DelegateConstructorProxy)" } }, "nodeType": "ModifierInvocation", - "src": "1040:50:10" + "src": "1061:50:10" } ], "name": "", @@ -644,7 +690,7 @@ "name": "_masterCopy", "nodeType": "VariableDeclaration", "scope": 1567, - "src": "936:19:10", + "src": "957:19:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -655,7 +701,7 @@ "id": 1520, "name": "address", "nodeType": "ElementaryTypeName", - "src": "936:7:10", + "src": "957:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -670,7 +716,7 @@ "name": "initializer", "nodeType": "VariableDeclaration", "scope": 1567, - "src": "957:17:10", + "src": "978:17:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -681,7 +727,7 @@ "id": 1522, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "957:5:10", + "src": "978:5:10", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -696,7 +742,7 @@ "name": "funder", "nodeType": "VariableDeclaration", "scope": 1567, - "src": "976:14:10", + "src": "997:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -707,7 +753,7 @@ "id": 1524, "name": "address", "nodeType": "ElementaryTypeName", - "src": "976:7:10", + "src": "997:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -722,7 +768,7 @@ "name": "paymentToken", "nodeType": "VariableDeclaration", "scope": 1567, - "src": "992:20:10", + "src": "1013:20:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -733,7 +779,7 @@ "id": 1526, "name": "address", "nodeType": "ElementaryTypeName", - "src": "992:7:10", + "src": "1013:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -748,7 +794,7 @@ "name": "payment", "nodeType": "VariableDeclaration", "scope": 1567, - "src": "1014:15:10", + "src": "1035:15:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -759,7 +805,7 @@ "id": 1528, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1014:7:10", + "src": "1035:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -769,27 +815,27 @@ "visibility": "internal" } ], - "src": "935:95:10" + "src": "956:95:10" }, "payable": false, "returnParameters": { "id": 1535, "nodeType": "ParameterList", "parameters": [], - "src": "1110:0:10" + "src": "1131:0:10" }, "scope": 1568, - "src": "924:466:10", + "src": "945:576:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 1569, - "src": "452:940:10" + "src": "451:1072:10" } ], - "src": "0:1393:10" + "src": "0:1524:10" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/PayingProxy.sol", @@ -802,7 +848,7 @@ "nodeType": "SourceUnit", "nodes": [ { - "id": 1515, + "id": 1513, "literals": [ "solidity", "0.4", @@ -814,7 +860,7 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/DelegateConstructorProxy.sol", "file": "./DelegateConstructorProxy.sol", - "id": 1516, + "id": 1514, "nodeType": "ImportDirective", "scope": 1569, "sourceUnit": 24, @@ -823,13 +869,13 @@ "unitAlias": "" }, { - "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/interfaces/ERC20Token.sol", - "file": "./interfaces/ERC20Token.sol", - "id": 1517, + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", + "file": "./SecuredTokenTransfer.sol", + "id": 1515, "nodeType": "ImportDirective", "scope": 1569, - "sourceUnit": 1786, - "src": "65:37:10", + "sourceUnit": 1672, + "src": "65:36:10", "symbolAliases": [], "unitAlias": "" }, @@ -839,24 +885,43 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1518, + "id": 1516, "name": "DelegateConstructorProxy", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 23, - "src": "476:24:10", + "src": "475:24:10", "typeDescriptions": { "typeIdentifier": "t_contract$_DelegateConstructorProxy_$23", "typeString": "contract DelegateConstructorProxy" } }, + "id": 1517, + "nodeType": "InheritanceSpecifier", + "src": "475:24:10" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 1518, + "name": "SecuredTokenTransfer", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1671, + "src": "501:20:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SecuredTokenTransfer_$1671", + "typeString": "contract SecuredTokenTransfer" + } + }, "id": 1519, "nodeType": "InheritanceSpecifier", - "src": "476:24:10" + "src": "501:20:10" } ], "contractDependencies": [ 23, - 1611 + 1611, + 1671 ], "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 - ", @@ -864,6 +929,7 @@ "id": 1568, "linearizedBaseContracts": [ 1568, + 1671, 23, 1611 ], @@ -874,7 +940,7 @@ "body": { "id": 1566, "nodeType": "Block", - "src": "1110:280:10", + "src": "1131:390:10", "statements": [ { "condition": { @@ -895,7 +961,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1529, - "src": "1124:7:10", + "src": "1145:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -913,7 +979,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1134:1:10", + "src": "1155:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -921,7 +987,7 @@ }, "value": "0" }, - "src": "1124:11:10", + "src": "1145:11:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -930,11 +996,11 @@ "falseBody": null, "id": 1565, "nodeType": "IfStatement", - "src": "1120:263:10", + "src": "1141:373:10", "trueBody": { "id": 1564, "nodeType": "Block", - "src": "1137:246:10", + "src": "1158:356:10", "statements": [ { "condition": { @@ -955,7 +1021,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1527, - "src": "1155:12:10", + "src": "1176:12:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -976,7 +1042,7 @@ "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1179:1:10", + "src": "1200:1:10", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -998,7 +1064,7 @@ "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "1171:7:10", + "src": "1192:7:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" @@ -1013,13 +1079,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1171:10:10", + "src": "1192:10:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "1155:26:10", + "src": "1176:26:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1028,7 +1094,7 @@ "falseBody": { "id": 1562, "nodeType": "Block", - "src": "1246:127:10", + "src": "1376:128:10", "statements": [ { "expression": { @@ -1037,6 +1103,19 @@ { "argumentTypes": null, "arguments": [ + { + "argumentTypes": null, + "id": 1555, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1527, + "src": "1416:12:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, { "argumentTypes": null, "id": 1556, @@ -1044,7 +1123,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1525, - "src": "1306:6:10", + "src": "1430:6:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1057,7 +1136,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1529, - "src": "1314:7:10", + "src": "1438:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1066,6 +1145,10 @@ ], "expression": { "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, { "typeIdentifier": "t_address", "typeString": "address" @@ -1075,67 +1158,15 @@ "typeString": "uint256" } ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1553, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1527, - "src": "1283:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1552, - "name": "ERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1785, - "src": "1272:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Token_$1785_$", - "typeString": "type(contract ERC20Token)" - } - }, - "id": 1554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1272:24:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Token_$1785", - "typeString": "contract ERC20Token" - } - }, - "id": 1555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1739, - "src": "1272:33:10", + "id": 1554, + "name": "transferToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1670, + "src": "1402:13:10", "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" } }, "id": 1558, @@ -1146,7 +1177,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1272:50:10", + "src": "1402:44:10", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1154,7 +1185,7 @@ }, { "argumentTypes": null, - "hexValue": "436f756c64206e6f74206578656375746520746f6b656e207061796d656e74", + "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e207769746820746f6b656e", "id": 1559, "isConstant": false, "isLValue": false, @@ -1162,13 +1193,13 @@ "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1324:33:10", + "src": "1448:40:10", "subdenomination": null, "typeDescriptions": { - "typeIdentifier": "t_stringliteral_56ee7cbc844d6a78f120ea6d555eb9afe8d3243b816d5489758d19d83ae941d2", - "typeString": "literal_string \"Could not execute token payment\"" + "typeIdentifier": "t_stringliteral_03e5f5a3fbd065ad357c2a53629b6dc528c3f7172cf25b2c45eb26f6e42b59c6", + "typeString": "literal_string \"Could not pay safe creation with token\"" }, - "value": "Could not execute token payment" + "value": "Could not pay safe creation with token" } ], "expression": { @@ -1178,19 +1209,19 @@ "typeString": "bool" }, { - "typeIdentifier": "t_stringliteral_56ee7cbc844d6a78f120ea6d555eb9afe8d3243b816d5489758d19d83ae941d2", - "typeString": "literal_string \"Could not execute token payment\"" + "typeIdentifier": "t_stringliteral_03e5f5a3fbd065ad357c2a53629b6dc528c3f7172cf25b2c45eb26f6e42b59c6", + "typeString": "literal_string \"Could not pay safe creation with token\"" } ], - "id": 1551, + "id": 1553, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "1264:7:10", + "referencedDeclaration": 2663, + "src": "1394:7:10", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" @@ -1204,7 +1235,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1264:94:10", + "src": "1394:95:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" @@ -1212,17 +1243,17 @@ }, "id": 1561, "nodeType": "ExpressionStatement", - "src": "1264:94:10" + "src": "1394:95:10" } ] }, "id": 1563, "nodeType": "IfStatement", - "src": "1151:222:10", + "src": "1172:332:10", "trueBody": { - "id": 1550, + "id": 1552, "nodeType": "Block", - "src": "1183:57:10", + "src": "1204:166:10", "statements": [ { "expression": { @@ -1230,53 +1261,114 @@ "arguments": [ { "argumentTypes": null, - "id": 1547, - "name": "payment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1529, - "src": "1217:7:10", + "arguments": [ + { + "argumentTypes": null, + "id": 1547, + "name": "payment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1529, + "src": "1304:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1545, + "name": "funder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1525, + "src": "1292:6:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "send", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1292:11:10", + "typeDescriptions": { + "typeIdentifier": "t_function_send_nonpayable$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) returns (bool)" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1292:20:10", "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" } + }, + { + "argumentTypes": null, + "hexValue": "436f756c64206e6f74207061792073616665206372656174696f6e2077697468206574686572", + "id": 1549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1314:40:10", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_001db5e0eea429a497fbb276b295895ba66824ab53239e68691cf332a945feab", + "typeString": "literal_string \"Could not pay safe creation with ether\"" + }, + "value": "Could not pay safe creation with ether" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint256", - "typeString": "uint256" + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_001db5e0eea429a497fbb276b295895ba66824ab53239e68691cf332a945feab", + "typeString": "literal_string \"Could not pay safe creation with ether\"" } ], - "expression": { - "argumentTypes": null, - "id": 1544, - "name": "funder", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "1201:6:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1201:15:10", + "id": 1544, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2662, + 2663 + ], + "referencedDeclaration": 2663, + "src": "1284:7:10", "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 1548, + "id": 1550, "isConstant": false, "isLValue": false, "isPure": false, @@ -1284,15 +1376,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1201:24:10", + "src": "1284:71:10", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1549, + "id": 1551, "nodeType": "ExpressionStatement", - "src": "1201:24:10" + "src": "1284:71:10" } ] } @@ -1317,7 +1409,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1521, - "src": "1065:11:10", + "src": "1086:11:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1330,7 +1422,7 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1523, - "src": "1078:11:10", + "src": "1099:11:10", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1345,14 +1437,14 @@ "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 23, - "src": "1040:24:10", + "src": "1061:24:10", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_DelegateConstructorProxy_$23_$", "typeString": "type(contract DelegateConstructorProxy)" } }, "nodeType": "ModifierInvocation", - "src": "1040:50:10" + "src": "1061:50:10" } ], "name": "", @@ -1367,7 +1459,7 @@ "name": "_masterCopy", "nodeType": "VariableDeclaration", "scope": 1567, - "src": "936:19:10", + "src": "957:19:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1378,7 +1470,7 @@ "id": 1520, "name": "address", "nodeType": "ElementaryTypeName", - "src": "936:7:10", + "src": "957:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1393,7 +1485,7 @@ "name": "initializer", "nodeType": "VariableDeclaration", "scope": 1567, - "src": "957:17:10", + "src": "978:17:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1404,7 +1496,7 @@ "id": 1522, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "957:5:10", + "src": "978:5:10", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1419,7 +1511,7 @@ "name": "funder", "nodeType": "VariableDeclaration", "scope": 1567, - "src": "976:14:10", + "src": "997:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1430,7 +1522,7 @@ "id": 1524, "name": "address", "nodeType": "ElementaryTypeName", - "src": "976:7:10", + "src": "997:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1445,7 +1537,7 @@ "name": "paymentToken", "nodeType": "VariableDeclaration", "scope": 1567, - "src": "992:20:10", + "src": "1013:20:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1456,7 +1548,7 @@ "id": 1526, "name": "address", "nodeType": "ElementaryTypeName", - "src": "992:7:10", + "src": "1013:7:10", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1471,7 +1563,7 @@ "name": "payment", "nodeType": "VariableDeclaration", "scope": 1567, - "src": "1014:15:10", + "src": "1035:15:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1482,7 +1574,7 @@ "id": 1528, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1014:7:10", + "src": "1035:7:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1492,33 +1584,33 @@ "visibility": "internal" } ], - "src": "935:95:10" + "src": "956:95:10" }, "payable": false, "returnParameters": { "id": 1535, "nodeType": "ParameterList", "parameters": [], - "src": "1110:0:10" + "src": "1131:0:10" }, "scope": 1568, - "src": "924:466:10", + "src": "945:576:10", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], "scope": 1569, - "src": "452:940:10" + "src": "451:1072:10" } ], - "src": "0:1393:10" + "src": "0:1524:10" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-18T14:44:09.461Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:56.487Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/Proxy.json b/safe-contracts/build/contracts/Proxy.json index af2f4b34..89b42ee4 100644 --- a/safe-contracts/build/contracts/Proxy.json +++ b/safe-contracts/build/contracts/Proxy.json @@ -205,10 +205,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "570:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -704,10 +704,10 @@ "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "570:7:11", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", @@ -1055,6 +1055,6 @@ "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-18T14:44:09.462Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:56.487Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/ProxyFactory.json b/safe-contracts/build/contracts/ProxyFactory.json index 3f2b4c3f..bbde1157 100644 --- a/safe-contracts/build/contracts/ProxyFactory.json +++ b/safe-contracts/build/contracts/ProxyFactory.json @@ -988,85 +988,13 @@ "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { - "4": { + "1530197641790": { "events": {}, "links": {}, - "address": "0xe799418aadc40eb8f2081424bd518cdb442d50f4", - "transactionHash": "0x83f7e65d10e5b2ae69f461d86bba33a67a845d65a591749327bd73ce6e28d50b" - }, - "1529327661534": { - "events": {}, - "links": {}, - "address": "0xa0e45d0af3d5daeb68a725e7f2dd544bcce9dd29", - "transactionHash": "0x5db6814a3b712012c000eb4d202e8d481abd2fcd127b1f746e2ab1d88ee523c9" - }, - "1529333415702": { - "events": {}, - "links": {}, - "address": "0xce824fab495ef56405218cce3512b7a73df9e2ca", - "transactionHash": "0x10a89cb87c96bb1becc3a78f1bfdd54f98cdc1cb7e5164e26b1cbbd09d69be8c" - }, - "1529652204341": { - "events": {}, - "links": {}, - "address": "0xffacf76025eda5f84659135a9d5c2d815dbe1caa", - "transactionHash": "0x75ad1066b44cd801ac66a316dbe4c09e72636d72b70fd62eb647295a0fc5e285" - }, - "1529931780812": { - "events": {}, - "links": {}, - "address": "0xe2fc46c79ca4e0d84448f13d87c1037bca2cea2c", - "transactionHash": "0x75ad1066b44cd801ac66a316dbe4c09e72636d72b70fd62eb647295a0fc5e285" - }, - "1529933005377": { - "events": {}, - "links": {}, - "address": "0xa3cb424b431bb8d9ec4a6c7b6872e785a376e540", - "transactionHash": "0x75ad1066b44cd801ac66a316dbe4c09e72636d72b70fd62eb647295a0fc5e285" - }, - "1529934931891": { - "events": {}, - "links": {}, - "address": "0x2005509bbecb0c2bcbfbce77633bfadad3a28ac6", - "transactionHash": "0x75ad1066b44cd801ac66a316dbe4c09e72636d72b70fd62eb647295a0fc5e285" - }, - "1529935355957": { - "events": {}, - "links": {}, - "address": "0xa7ebfbfb51c1c928f58188e06ad43706208dd25a", - "transactionHash": "0x75ad1066b44cd801ac66a316dbe4c09e72636d72b70fd62eb647295a0fc5e285" - }, - "1529936204222": { - "events": {}, - "links": {}, - "address": "0xe408142c5a74c8b49ad5cafac0d825fc30e6b157", - "transactionHash": "0x75ad1066b44cd801ac66a316dbe4c09e72636d72b70fd62eb647295a0fc5e285" - }, - "1529937280871": { - "events": {}, - "links": {}, - "address": "0xf334c67727173561c53f63af8662632c302607c4", - "transactionHash": "0x75ad1066b44cd801ac66a316dbe4c09e72636d72b70fd62eb647295a0fc5e285" - }, - "1529937637076": { - "events": {}, - "links": {}, - "address": "0xca874c0e7e80da403e8b93aa9e16b3053e207f02", - "transactionHash": "0x75ad1066b44cd801ac66a316dbe4c09e72636d72b70fd62eb647295a0fc5e285" - }, - "1529937890676": { - "events": {}, - "links": {}, - "address": "0x3e0eee3a1f3c71659cb15d8b9cc7f3ea163fe960", - "transactionHash": "0x75ad1066b44cd801ac66a316dbe4c09e72636d72b70fd62eb647295a0fc5e285" - }, - "1530013596495": { - "events": {}, - "links": {}, - "address": "0x58831bc2afcef77f12cf8e02560ae3af6c343f2f", - "transactionHash": "0x75ad1066b44cd801ac66a316dbe4c09e72636d72b70fd62eb647295a0fc5e285" + "address": "0x7131c2f1cb4e1417605c2bf634cd77e3db100229", + "transactionHash": "0xaca4f73fb5a982114bfa8202dcda96c6adc46199b36241142b95798aeecfd1af" } }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-26T11:47:04.119Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:58.210Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/SecuredTokenTransfer.json b/safe-contracts/build/contracts/SecuredTokenTransfer.json new file mode 100644 index 00000000..effab691 --- /dev/null +++ b/safe-contracts/build/contracts/SecuredTokenTransfer.json @@ -0,0 +1,783 @@ +{ + "contractName": "SecuredTokenTransfer", + "abi": [], + "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058203704d691dd103c6cda573e69dcd48a2de4d0edf672da44096a50180687c79a770029", + "deployedBytecode": "0x6080604052600080fd00a165627a7a723058203704d691dd103c6cda573e69dcd48a2de4d0edf672da44096a50180687c79a770029", + "sourceMap": "133:1051:13:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;133:1051:13;;;;;;;", + "deployedSourceMap": "133:1051:13:-;;;;;", + "source": "pragma solidity 0.4.24;\n\n\n/// @title SecuredTokenTransfer - Secure token transfer\n/// @author Richard Meissner - \ncontract SecuredTokenTransfer {\n\n /// @dev Transfers a token and returns if it was a success\n /// @param token Token that should be transferred\n /// @param receiver Receiver to whom the token should be transferred\n /// @param amount The amount of tokens that should be transferred\n function transferToken (\n address token, \n address receiver,\n uint256 amount\n )\n internal\n returns (bool transferred)\n {\n bytes memory data = abi.encodeWithSignature(\"transfer(address,uint256)\", receiver, amount);\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let success := call(sub(gas, 10000), token, 0, add(data, 0x20), mload(data), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize)\n switch returndatasize \n case 0 { transferred := success }\n case 0x20 { transferred := iszero(or(iszero(success), iszero(mload(ptr)))) }\n default { transferred := 0 }\n }\n }\n}\n", + "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", + "ast": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", + "exportedSymbols": { + "SecuredTokenTransfer": [ + 1671 + ] + }, + "id": 1672, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1648, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:13" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title SecuredTokenTransfer - Secure token transfer\n @author Richard Meissner - ", + "fullyImplemented": true, + "id": 1671, + "linearizedBaseContracts": [ + 1671 + ], + "name": "SecuredTokenTransfer", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1669, + "nodeType": "Block", + "src": "590:592:13", + "statements": [ + { + "assignments": [ + 1660 + ], + "declarations": [ + { + "constant": false, + "id": 1660, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1670, + "src": "600:17:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1659, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "600:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1667, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 1663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "644:27:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + }, + { + "argumentTypes": null, + "id": 1664, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1652, + "src": "673:8:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1665, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1654, + "src": "683:6:13", + "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": 1661, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2646, + "src": "620:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1662, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "620:23:13", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (string memory) pure returns (bytes memory)" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "620:70:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "600:90:13" + }, + { + "externalReferences": [ + { + "transferred": { + "declaration": 1657, + "isOffset": false, + "isSlot": false, + "src": "1061:11:13", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 1660, + "isOffset": false, + "isSlot": false, + "src": "857:4:13", + "valueSize": 1 + } + }, + { + "token": { + "declaration": 1650, + "isOffset": false, + "isSlot": false, + "src": "824:5:13", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 1660, + "isOffset": false, + "isSlot": false, + "src": "838:4:13", + "valueSize": 1 + } + }, + { + "transferred": { + "declaration": 1657, + "isOffset": false, + "isSlot": false, + "src": "1012:11:13", + "valueSize": 1 + } + }, + { + "transferred": { + "declaration": 1657, + "isOffset": false, + "isSlot": false, + "src": "1148:11:13", + "valueSize": 1 + } + } + ], + "id": 1668, + "nodeType": "InlineAssembly", + "operations": "{\n let success := call(sub(gas(), 10000), token, 0, add(data, 0x20), mload(data), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n switch returndatasize()\n case 0 {\n transferred := success\n }\n case 0x20 {\n transferred := iszero(or(iszero(success), iszero(mload(ptr))))\n }\n default {\n transferred := 0\n }\n}", + "src": "764:418:13" + } + ] + }, + "documentation": "@dev Transfers a token and returns if it was a success\n @param token Token that should be transferred\n @param receiver Receiver to whom the token should be transferred\n @param amount The amount of tokens that should be transferred", + "id": 1670, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1650, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1670, + "src": "463:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1649, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "463:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1652, + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 1670, + "src": "487:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1651, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "487:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1654, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1670, + "src": "513:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "513:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "453:80:13" + }, + "payable": false, + "returnParameters": { + "id": 1658, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1657, + "name": "transferred", + "nodeType": "VariableDeclaration", + "scope": 1670, + "src": "568:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1656, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "568:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "567:18:13" + }, + "scope": 1671, + "src": "430:752:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 1672, + "src": "133:1051:13" + } + ], + "src": "0:1185:13" + }, + "legacyAST": { + "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SecuredTokenTransfer.sol", + "exportedSymbols": { + "SecuredTokenTransfer": [ + 1671 + ] + }, + "id": 1672, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1648, + "literals": [ + "solidity", + "0.4", + ".24" + ], + "nodeType": "PragmaDirective", + "src": "0:23:13" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title SecuredTokenTransfer - Secure token transfer\n @author Richard Meissner - ", + "fullyImplemented": true, + "id": 1671, + "linearizedBaseContracts": [ + 1671 + ], + "name": "SecuredTokenTransfer", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1669, + "nodeType": "Block", + "src": "590:592:13", + "statements": [ + { + "assignments": [ + 1660 + ], + "declarations": [ + { + "constant": false, + "id": 1660, + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1670, + "src": "600:17:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1659, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "600:5:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1667, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "7472616e7366657228616464726573732c75696e7432353629", + "id": 1663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "644:27:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b", + "typeString": "literal_string \"transfer(address,uint256)\"" + }, + "value": "transfer(address,uint256)" + }, + { + "argumentTypes": null, + "id": 1664, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1652, + "src": "673:8:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1665, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1654, + "src": "683:6:13", + "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": 1661, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2646, + "src": "620:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1662, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "620:23:13", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (string memory) pure returns (bytes memory)" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "620:70:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "600:90:13" + }, + { + "externalReferences": [ + { + "transferred": { + "declaration": 1657, + "isOffset": false, + "isSlot": false, + "src": "1061:11:13", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 1660, + "isOffset": false, + "isSlot": false, + "src": "857:4:13", + "valueSize": 1 + } + }, + { + "token": { + "declaration": 1650, + "isOffset": false, + "isSlot": false, + "src": "824:5:13", + "valueSize": 1 + } + }, + { + "data": { + "declaration": 1660, + "isOffset": false, + "isSlot": false, + "src": "838:4:13", + "valueSize": 1 + } + }, + { + "transferred": { + "declaration": 1657, + "isOffset": false, + "isSlot": false, + "src": "1012:11:13", + "valueSize": 1 + } + }, + { + "transferred": { + "declaration": 1657, + "isOffset": false, + "isSlot": false, + "src": "1148:11:13", + "valueSize": 1 + } + } + ], + "id": 1668, + "nodeType": "InlineAssembly", + "operations": "{\n let success := call(sub(gas(), 10000), token, 0, add(data, 0x20), mload(data), 0, 0)\n let ptr := mload(0x40)\n returndatacopy(ptr, 0, returndatasize())\n switch returndatasize()\n case 0 {\n transferred := success\n }\n case 0x20 {\n transferred := iszero(or(iszero(success), iszero(mload(ptr))))\n }\n default {\n transferred := 0\n }\n}", + "src": "764:418:13" + } + ] + }, + "documentation": "@dev Transfers a token and returns if it was a success\n @param token Token that should be transferred\n @param receiver Receiver to whom the token should be transferred\n @param amount The amount of tokens that should be transferred", + "id": 1670, + "implemented": true, + "isConstructor": false, + "isDeclaredConst": false, + "modifiers": [], + "name": "transferToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1650, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 1670, + "src": "463:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1649, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "463:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1652, + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 1670, + "src": "487:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1651, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "487:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1654, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1670, + "src": "513:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1653, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "513:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "453:80:13" + }, + "payable": false, + "returnParameters": { + "id": 1658, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1657, + "name": "transferred", + "nodeType": "VariableDeclaration", + "scope": 1670, + "src": "568:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1656, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "568:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "567:18:13" + }, + "scope": 1671, + "src": "430:752:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 1672, + "src": "133:1051:13" + } + ], + "src": "0:1185:13" + }, + "compiler": { + "name": "solc", + "version": "0.4.24+commit.e67f0147.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:56.488Z" +} \ No newline at end of file diff --git a/safe-contracts/build/contracts/SelfAuthorized.json b/safe-contracts/build/contracts/SelfAuthorized.json index a1e9201e..9c9e639d 100644 --- a/safe-contracts/build/contracts/SelfAuthorized.json +++ b/safe-contracts/build/contracts/SelfAuthorized.json @@ -3,29 +3,29 @@ "abi": [], "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a72305820ec80f1b4520aa5197e4181778f1e2e4fc460002d4a40e2e8e6709c8986067c220029", "deployedBytecode": "0x6080604052600080fd00a165627a7a72305820ec80f1b4520aa5197e4181778f1e2e4fc460002d4a40e2e8e6709c8986067c220029", - "sourceMap": "152:166:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;152:166:8;;;;;;;", - "deployedSourceMap": "152:166:8:-;;;;;", + "sourceMap": "152:166:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;152:166:14;;;;;;;", + "deployedSourceMap": "152:166:14:-;;;;;", "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), \"Method can only be called from this contract\");\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": [ - 1449 + 1688 ] }, - "id": 1450, + "id": 1689, "nodeType": "SourceUnit", "nodes": [ { - "id": 1434, + "id": 1673, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:8" + "src": "0:23:14" }, { "baseContracts": [], @@ -33,18 +33,18 @@ "contractKind": "contract", "documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1449, + "id": 1688, "linearizedBaseContracts": [ - 1449 + 1688 ], "name": "SelfAuthorized", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1447, + "id": 1686, "nodeType": "Block", - "src": "204:112:8", + "src": "204:112:14", "statements": [ { "expression": { @@ -56,7 +56,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1442, + "id": 1681, "isConstant": false, "isLValue": false, "isPure": false, @@ -65,18 +65,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1437, + "id": 1676, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1773, - "src": "222:3:8", + "referencedDeclaration": 2659, + "src": "222:3:14", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1438, + "id": 1677, "isConstant": false, "isLValue": false, "isPure": false, @@ -84,7 +84,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "222:10:8", + "src": "222:10:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -97,14 +97,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1440, + "id": 1679, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1788, - "src": "244:4:8", + "referencedDeclaration": 2678, + "src": "244:4:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1449", + "typeIdentifier": "t_contract$_SelfAuthorized_$1688", "typeString": "contract SelfAuthorized" } } @@ -112,24 +112,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SelfAuthorized_$1449", + "typeIdentifier": "t_contract$_SelfAuthorized_$1688", "typeString": "contract SelfAuthorized" } ], - "id": 1439, + "id": 1678, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "236:7:8", + "src": "236:7:14", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1441, + "id": 1680, "isConstant": false, "isLValue": false, "isPure": false, @@ -137,13 +137,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "236:13:8", + "src": "236:13:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "222:27:8", + "src": "222:27:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -152,14 +152,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374", - "id": 1443, + "id": 1682, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "251:46:8", + "src": "251:46:14", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c4780ef0a1d41d59bac8c510cf9ada421bccf2b90f75a8e4ba2e8c09e8d72733", @@ -179,21 +179,21 @@ "typeString": "literal_string \"Method can only be called from this contract\"" } ], - "id": 1436, + "id": 1675, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "214:7:8", + "referencedDeclaration": 2663, + "src": "214:7:14", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1444, + "id": 1683, "isConstant": false, "isLValue": false, "isPure": false, @@ -201,62 +201,62 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "214:84:8", + "src": "214:84:14", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1445, + "id": 1684, "nodeType": "ExpressionStatement", - "src": "214:84:8" + "src": "214:84:14" }, { - "id": 1446, + "id": 1685, "nodeType": "PlaceholderStatement", - "src": "308:1:8" + "src": "308:1:14" } ] }, "documentation": null, - "id": 1448, + "id": 1687, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 1435, + "id": 1674, "nodeType": "ParameterList", "parameters": [], - "src": "201:2:8" + "src": "201:2:14" }, - "src": "182:134:8", + "src": "182:134:14", "visibility": "internal" } ], - "scope": 1450, - "src": "152:166:8" + "scope": 1689, + "src": "152:166:14" } ], - "src": "0:319:8" + "src": "0:319:14" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SelfAuthorized.sol", "exportedSymbols": { "SelfAuthorized": [ - 1449 + 1688 ] }, - "id": 1450, + "id": 1689, "nodeType": "SourceUnit", "nodes": [ { - "id": 1434, + "id": 1673, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:8" + "src": "0:23:14" }, { "baseContracts": [], @@ -264,18 +264,18 @@ "contractKind": "contract", "documentation": "@title SelfAuthorized - authorizes current contract to perform actions\n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1449, + "id": 1688, "linearizedBaseContracts": [ - 1449 + 1688 ], "name": "SelfAuthorized", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1447, + "id": 1686, "nodeType": "Block", - "src": "204:112:8", + "src": "204:112:14", "statements": [ { "expression": { @@ -287,7 +287,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1442, + "id": 1681, "isConstant": false, "isLValue": false, "isPure": false, @@ -296,18 +296,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 1437, + "id": 1676, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1773, - "src": "222:3:8", + "referencedDeclaration": 2659, + "src": "222:3:14", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 1438, + "id": 1677, "isConstant": false, "isLValue": false, "isPure": false, @@ -315,7 +315,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "222:10:8", + "src": "222:10:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -328,14 +328,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1440, + "id": 1679, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1788, - "src": "244:4:8", + "referencedDeclaration": 2678, + "src": "244:4:14", "typeDescriptions": { - "typeIdentifier": "t_contract$_SelfAuthorized_$1449", + "typeIdentifier": "t_contract$_SelfAuthorized_$1688", "typeString": "contract SelfAuthorized" } } @@ -343,24 +343,24 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_SelfAuthorized_$1449", + "typeIdentifier": "t_contract$_SelfAuthorized_$1688", "typeString": "contract SelfAuthorized" } ], - "id": 1439, + "id": 1678, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "236:7:8", + "src": "236:7:14", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1441, + "id": 1680, "isConstant": false, "isLValue": false, "isPure": false, @@ -368,13 +368,13 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "236:13:8", + "src": "236:13:14", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "222:27:8", + "src": "222:27:14", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -383,14 +383,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d207468697320636f6e7472616374", - "id": 1443, + "id": 1682, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "251:46:8", + "src": "251:46:14", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c4780ef0a1d41d59bac8c510cf9ada421bccf2b90f75a8e4ba2e8c09e8d72733", @@ -410,21 +410,21 @@ "typeString": "literal_string \"Method can only be called from this contract\"" } ], - "id": 1436, + "id": 1675, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "214:7:8", + "referencedDeclaration": 2663, + "src": "214:7:14", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1444, + "id": 1683, "isConstant": false, "isLValue": false, "isPure": false, @@ -432,48 +432,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "214:84:8", + "src": "214:84:14", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1445, + "id": 1684, "nodeType": "ExpressionStatement", - "src": "214:84:8" + "src": "214:84:14" }, { - "id": 1446, + "id": 1685, "nodeType": "PlaceholderStatement", - "src": "308:1:8" + "src": "308:1:14" } ] }, "documentation": null, - "id": 1448, + "id": 1687, "name": "authorized", "nodeType": "ModifierDefinition", "parameters": { - "id": 1435, + "id": 1674, "nodeType": "ParameterList", "parameters": [], - "src": "201:2:8" + "src": "201:2:14" }, - "src": "182:134:8", + "src": "182:134:14", "visibility": "internal" } ], - "scope": 1450, - "src": "152:166:8" + "scope": 1689, + "src": "152:166:14" } ], - "src": "0:319:8" + "src": "0:319:14" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-20T07:57:27.027Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:56.488Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/SignatureValidator.json b/safe-contracts/build/contracts/SignatureValidator.json index 24af72a3..730f7c9b 100644 --- a/safe-contracts/build/contracts/SignatureValidator.json +++ b/safe-contracts/build/contracts/SignatureValidator.json @@ -1,90 +1,31 @@ { "contractName": "SignatureValidator", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "txHash", - "type": "bytes32" - }, - { - "name": "messageSignature", - "type": "bytes" - }, - { - "name": "pos", - "type": "uint256" - } - ], - "name": "recoverKey", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "signatures", - "type": "bytes" - }, - { - "name": "pos", - "type": "uint256" - } - ], - "name": "signatureSplit", - "outputs": [ - { - "name": "v", - "type": "uint8" - }, - { - "name": "r", - "type": "bytes32" - }, - { - "name": "s", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506102c1806100206000396000f30060806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806363f44b5914610051578063b817dcc214610112575b600080fd5b34801561005d57600080fd5b506100d06004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506101bd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561011e57600080fd5b50610183600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050610266565b604051808460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001935050505060405180910390f35b6000806000806101cd8686610266565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015610250573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a72305820008feaa8b6dd7fe4a001ab0d8cd464ff26f4fbcfab9beb4d5b9d08e0da44c46c0029", - "deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806363f44b5914610051578063b817dcc214610112575b600080fd5b34801561005d57600080fd5b506100d06004803603810190808035600019169060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001909291905050506101bd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561011e57600080fd5b50610183600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050610266565b604051808460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001935050505060405180910390f35b6000806000806101cd8686610266565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015610250573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a72305820008feaa8b6dd7fe4a001ab0d8cd464ff26f4fbcfab9beb4d5b9d08e0da44c46c0029", - "sourceMap": "221:1675:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;221:1675:9;;;;;;;", - "deployedSourceMap": "221:1675:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:328;;8:9:-1;5:2;;;30:1;27;20:12;5:2;477:328:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;982:912;;8:9:-1;5:2;;;30:1;27;20:12;5:2;982:912:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;477:328;627:7;651;668:9;687;718:37;733:16;751:3;718:14;:37::i;:::-;706:49;;;;;;;;;;;;772:26;782:6;790:1;793;796;772:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;772:26:9;;;;;;;;765:33;;477:328;;;;;;;;:::o;982:912::-;1082:7;1091:9;1102;1402:3;1396:4;1392:14;1464:4;1450:12;1446:23;1434:10;1430:40;1424:47;1419:52;;1529:4;1515:12;1511:23;1499:10;1495:40;1489:47;1484:52;;1873:4;1864;1850:12;1846:23;1834:10;1830:40;1824:47;1820:58;1815:63;;1358:530;;;;;;:::o", - "source": "pragma solidity 0.4.24;\n\n\n/// @title SignatureValidator - recovers a sender from a signature \n/// @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n/// @author Richard Meissner - \ncontract SignatureValidator {\n \n /// @dev Recovers address who signed the message \n /// @param txHash operation ethereum signed message hash\n /// @param messageSignature message `txHash` signature\n /// @param pos which signature to read\n function recoverKey (\n bytes32 txHash, \n bytes messageSignature,\n uint256 pos\n )\n pure\n public\n returns (address) \n {\n uint8 v;\n bytes32 r;\n bytes32 s;\n (v, r, s) = signatureSplit(messageSignature, pos);\n return ecrecover(txHash, v, r, s);\n }\n\n /// @dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`\n /// @param pos which signature to read\n /// @param signatures concatenated rsv signatures\n function signatureSplit(bytes signatures, uint256 pos)\n pure\n public\n returns (uint8 v, bytes32 r, bytes32 s)\n {\n // The signature format is a compact form of:\n // {bytes32 r}{bytes32 s}{uint8 v}\n // Compact means, uint8 is not padded to 32 bytes.\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let signaturePos := mul(0x41, pos)\n r := mload(add(signatures, add(signaturePos, 0x20)))\n s := mload(add(signatures, add(signaturePos, 0x40)))\n // Here we are loading the last 32 bytes, including 31 bytes\n // of 's'. There is no 'mload8' to do this.\n //\n // 'byte' is not working due to the Solidity parser, so lets\n // use the second best option, 'and'\n v := and(mload(add(signatures, add(signaturePos, 0x41))), 0xff)\n }\n }\n}\n", + "abi": [], + "bytecode": "0x6080604052348015600f57600080fd5b50603580601d6000396000f3006080604052600080fd00a165627a7a723058200cdb9454422435d516dbae78d0a22b0e1372e2fd7734828c7dc1343365c85cd50029", + "deployedBytecode": "0x6080604052600080fd00a165627a7a723058200cdb9454422435d516dbae78d0a22b0e1372e2fd7734828c7dc1343365c85cd50029", + "sourceMap": "221:1679:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;221:1679:15;;;;;;;", + "deployedSourceMap": "221:1679:15:-;;;;;", + "source": "pragma solidity 0.4.24;\n\n\n/// @title SignatureValidator - recovers a sender from a signature \n/// @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n/// @author Richard Meissner - \ncontract SignatureValidator {\n \n /// @dev Recovers address who signed the message \n /// @param txHash operation ethereum signed message hash\n /// @param messageSignature message `txHash` signature\n /// @param pos which signature to read\n function recoverKey (\n bytes32 txHash, \n bytes messageSignature,\n uint256 pos\n )\n pure\n internal\n returns (address) \n {\n uint8 v;\n bytes32 r;\n bytes32 s;\n (v, r, s) = signatureSplit(messageSignature, pos);\n return ecrecover(txHash, v, r, s);\n }\n\n /// @dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`\n /// @param pos which signature to read\n /// @param signatures concatenated rsv signatures\n function signatureSplit(bytes signatures, uint256 pos)\n pure\n internal\n returns (uint8 v, bytes32 r, bytes32 s)\n {\n // The signature format is a compact form of:\n // {bytes32 r}{bytes32 s}{uint8 v}\n // Compact means, uint8 is not padded to 32 bytes.\n // solium-disable-next-line security/no-inline-assembly\n assembly {\n let signaturePos := mul(0x41, pos)\n r := mload(add(signatures, add(signaturePos, 0x20)))\n s := mload(add(signatures, add(signaturePos, 0x40)))\n // Here we are loading the last 32 bytes, including 31 bytes\n // of 's'. There is no 'mload8' to do this.\n //\n // 'byte' is not working due to the Solidity parser, so lets\n // use the second best option, 'and'\n v := and(mload(add(signatures, add(signaturePos, 0x41))), 0xff)\n }\n }\n}\n", "sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", "ast": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", "exportedSymbols": { "SignatureValidator": [ - 1505 + 1744 ] }, - "id": 1506, + "id": 1745, "nodeType": "SourceUnit", "nodes": [ { - "id": 1451, + "id": 1690, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:9" + "src": "0:23:15" }, { "baseContracts": [], @@ -92,29 +33,29 @@ "contractKind": "contract", "documentation": "@title SignatureValidator - recovers a sender from a signature \n @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1505, + "id": 1744, "linearizedBaseContracts": [ - 1505 + 1744 ], "name": "SignatureValidator", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1488, + "id": 1727, "nodeType": "Block", - "src": "641:164:9", + "src": "643:164:15", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 1463, + "id": 1702, "name": "v", "nodeType": "VariableDeclaration", - "scope": 1489, - "src": "651:7:9", + "scope": 1728, + "src": "653:7:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -122,10 +63,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1462, + "id": 1701, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "651:5:9", + "src": "653:5:15", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -135,21 +76,21 @@ "visibility": "internal" } ], - "id": 1464, + "id": 1703, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "651:7:9" + "src": "653:7:15" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 1466, + "id": 1705, "name": "r", "nodeType": "VariableDeclaration", - "scope": 1489, - "src": "668:9:9", + "scope": 1728, + "src": "670:9:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -157,10 +98,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1465, + "id": 1704, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "668:7:9", + "src": "670:7:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -170,21 +111,21 @@ "visibility": "internal" } ], - "id": 1467, + "id": 1706, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "668:9:9" + "src": "670:9:15" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 1469, + "id": 1708, "name": "s", "nodeType": "VariableDeclaration", - "scope": 1489, - "src": "687:9:9", + "scope": 1728, + "src": "689:9:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -192,10 +133,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1468, + "id": 1707, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "687:7:9", + "src": "689:7:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -205,15 +146,15 @@ "visibility": "internal" } ], - "id": 1470, + "id": 1709, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "687:9:9" + "src": "689:9:15" }, { "expression": { "argumentTypes": null, - "id": 1479, + "id": 1718, "isConstant": false, "isLValue": false, "isPure": false, @@ -223,12 +164,12 @@ "components": [ { "argumentTypes": null, - "id": 1471, + "id": 1710, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "707:1:9", + "referencedDeclaration": 1702, + "src": "709:1:15", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -236,12 +177,12 @@ }, { "argumentTypes": null, - "id": 1472, + "id": 1711, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1466, - "src": "710:1:9", + "referencedDeclaration": 1705, + "src": "712:1:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -249,26 +190,26 @@ }, { "argumentTypes": null, - "id": 1473, + "id": 1712, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1469, - "src": "713:1:9", + "referencedDeclaration": 1708, + "src": "715:1:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 1474, + "id": 1713, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", - "src": "706:9:9", + "src": "708:9:15", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(uint8,bytes32,bytes32)" @@ -281,12 +222,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1476, + "id": 1715, "name": "messageSignature", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1455, - "src": "733:16:9", + "referencedDeclaration": 1694, + "src": "735:16:15", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -294,12 +235,12 @@ }, { "argumentTypes": null, - "id": 1477, + "id": 1716, "name": "pos", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "751:3:9", + "referencedDeclaration": 1696, + "src": "753:3:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -317,18 +258,18 @@ "typeString": "uint256" } ], - "id": 1475, + "id": 1714, "name": "signatureSplit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1504, - "src": "718:14:9", + "referencedDeclaration": 1743, + "src": "720:14:15", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)" } }, - "id": 1478, + "id": 1717, "isConstant": false, "isLValue": false, "isPure": false, @@ -336,21 +277,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "718:37:9", + "src": "720:37:15", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(uint8,bytes32,bytes32)" } }, - "src": "706:49:9", + "src": "708:49:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1480, + "id": 1719, "nodeType": "ExpressionStatement", - "src": "706:49:9" + "src": "708:49:15" }, { "expression": { @@ -358,12 +299,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1482, + "id": 1721, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1453, - "src": "782:6:9", + "referencedDeclaration": 1692, + "src": "784:6:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -371,12 +312,12 @@ }, { "argumentTypes": null, - "id": 1483, + "id": 1722, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "790:1:9", + "referencedDeclaration": 1702, + "src": "792:1:15", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -384,12 +325,12 @@ }, { "argumentTypes": null, - "id": 1484, + "id": 1723, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1466, - "src": "793:1:9", + "referencedDeclaration": 1705, + "src": "795:1:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -397,12 +338,12 @@ }, { "argumentTypes": null, - "id": 1485, + "id": 1724, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1469, - "src": "796:1:9", + "referencedDeclaration": 1708, + "src": "798:1:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -428,18 +369,18 @@ "typeString": "bytes32" } ], - "id": 1481, + "id": 1720, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1765, - "src": "772:9:9", + "referencedDeclaration": 2651, + "src": "774:9:15", "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": 1486, + "id": 1725, "isConstant": false, "isLValue": false, "isPure": false, @@ -447,21 +388,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "772:26:9", + "src": "774:26:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1461, - "id": 1487, + "functionReturnParameters": 1700, + "id": 1726, "nodeType": "Return", - "src": "765:33:9" + "src": "767:33:15" } ] }, "documentation": "@dev Recovers address who signed the message \n @param txHash operation ethereum signed message hash\n @param messageSignature message `txHash` signature\n @param pos which signature to read", - "id": 1489, + "id": 1728, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -469,16 +410,16 @@ "name": "recoverKey", "nodeType": "FunctionDefinition", "parameters": { - "id": 1458, + "id": 1697, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1453, + "id": 1692, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 1489, - "src": "507:14:9", + "scope": 1728, + "src": "507:14:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -486,10 +427,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1452, + "id": 1691, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "507:7:9", + "src": "507:7:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -500,11 +441,11 @@ }, { "constant": false, - "id": 1455, + "id": 1694, "name": "messageSignature", "nodeType": "VariableDeclaration", - "scope": 1489, - "src": "532:22:9", + "scope": 1728, + "src": "532:22:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -512,10 +453,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1454, + "id": 1693, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "532:5:9", + "src": "532:5:15", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -526,11 +467,11 @@ }, { "constant": false, - "id": 1457, + "id": 1696, "name": "pos", "nodeType": "VariableDeclaration", - "scope": 1489, - "src": "564:11:9", + "scope": 1728, + "src": "564:11:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -538,10 +479,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1456, + "id": 1695, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "564:7:9", + "src": "564:7:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -551,20 +492,20 @@ "visibility": "internal" } ], - "src": "497:84:9" + "src": "497:84:15" }, "payable": false, "returnParameters": { - "id": 1461, + "id": 1700, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1460, + "id": 1699, "name": "", "nodeType": "VariableDeclaration", - "scope": 1489, - "src": "627:7:9", + "scope": 1728, + "src": "629:7:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -572,10 +513,10 @@ "typeString": "address" }, "typeName": { - "id": 1459, + "id": 1698, "name": "address", "nodeType": "ElementaryTypeName", - "src": "627:7:9", + "src": "629:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -585,95 +526,95 @@ "visibility": "internal" } ], - "src": "626:9:9" + "src": "628:9:15" }, - "scope": 1505, - "src": "477:328:9", + "scope": 1744, + "src": "477:330:15", "stateMutability": "pure", "superFunction": null, - "visibility": "public" + "visibility": "internal" }, { "body": { - "id": 1503, + "id": 1742, "nodeType": "Block", - "src": "1117:777:9", + "src": "1121:777:15", "statements": [ { "externalReferences": [ { "r": { - "declaration": 1498, + "declaration": 1737, "isOffset": false, "isSlot": false, - "src": "1419:1:9", + "src": "1423:1:15", "valueSize": 1 } }, { "pos": { - "declaration": 1493, + "declaration": 1732, "isOffset": false, "isSlot": false, - "src": "1402:3:9", + "src": "1406:3:15", "valueSize": 1 } }, { "signatures": { - "declaration": 1491, + "declaration": 1730, "isOffset": false, "isSlot": false, - "src": "1434:10:9", + "src": "1438:10:15", "valueSize": 1 } }, { "s": { - "declaration": 1500, + "declaration": 1739, "isOffset": false, "isSlot": false, - "src": "1484:1:9", + "src": "1488:1:15", "valueSize": 1 } }, { "signatures": { - "declaration": 1491, + "declaration": 1730, "isOffset": false, "isSlot": false, - "src": "1499:10:9", + "src": "1503:10:15", "valueSize": 1 } }, { "v": { - "declaration": 1496, + "declaration": 1735, "isOffset": false, "isSlot": false, - "src": "1815:1:9", + "src": "1819:1:15", "valueSize": 1 } }, { "signatures": { - "declaration": 1491, + "declaration": 1730, "isOffset": false, "isSlot": false, - "src": "1834:10:9", + "src": "1838:10:15", "valueSize": 1 } } ], - "id": 1502, + "id": 1741, "nodeType": "InlineAssembly", "operations": "{\n let signaturePos := mul(0x41, pos)\n r := mload(add(signatures, add(signaturePos, 0x20)))\n s := mload(add(signatures, add(signaturePos, 0x40)))\n v := and(mload(add(signatures, add(signaturePos, 0x41))), 0xff)\n}", - "src": "1349:545:9" + "src": "1353:545:15" } ] }, "documentation": "@dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`\n @param pos which signature to read\n @param signatures concatenated rsv signatures", - "id": 1504, + "id": 1743, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -681,16 +622,16 @@ "name": "signatureSplit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1494, + "id": 1733, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1491, + "id": 1730, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "1006:16:9", + "scope": 1743, + "src": "1008:16:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -698,10 +639,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1490, + "id": 1729, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1006:5:9", + "src": "1008:5:15", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -712,11 +653,11 @@ }, { "constant": false, - "id": 1493, + "id": 1732, "name": "pos", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "1024:11:9", + "scope": 1743, + "src": "1026:11:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -724,10 +665,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1492, + "id": 1731, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1024:7:9", + "src": "1026:7:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -737,20 +678,20 @@ "visibility": "internal" } ], - "src": "1005:31:9" + "src": "1007:31:15" }, "payable": false, "returnParameters": { - "id": 1501, + "id": 1740, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1496, + "id": 1735, "name": "v", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "1082:7:9", + "scope": 1743, + "src": "1086:7:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -758,10 +699,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1495, + "id": 1734, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1082:5:9", + "src": "1086:5:15", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -772,11 +713,11 @@ }, { "constant": false, - "id": 1498, + "id": 1737, "name": "r", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "1091:9:9", + "scope": 1743, + "src": "1095:9:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -784,10 +725,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1497, + "id": 1736, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1091:7:9", + "src": "1095:7:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -798,11 +739,11 @@ }, { "constant": false, - "id": 1500, + "id": 1739, "name": "s", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "1102:9:9", + "scope": 1743, + "src": "1106:9:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -810,10 +751,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1499, + "id": 1738, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1102:7:9", + "src": "1106:7:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -823,40 +764,40 @@ "visibility": "internal" } ], - "src": "1081:31:9" + "src": "1085:31:15" }, - "scope": 1505, - "src": "982:912:9", + "scope": 1744, + "src": "984:914:15", "stateMutability": "pure", "superFunction": null, - "visibility": "public" + "visibility": "internal" } ], - "scope": 1506, - "src": "221:1675:9" + "scope": 1745, + "src": "221:1679:15" } ], - "src": "0:1897:9" + "src": "0:1901:15" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", "exportedSymbols": { "SignatureValidator": [ - 1505 + 1744 ] }, - "id": 1506, + "id": 1745, "nodeType": "SourceUnit", "nodes": [ { - "id": 1451, + "id": 1690, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:9" + "src": "0:23:15" }, { "baseContracts": [], @@ -864,29 +805,29 @@ "contractKind": "contract", "documentation": "@title SignatureValidator - recovers a sender from a signature \n @author Ricardo Guilherme Schmidt (Status Research & Development GmbH) \n @author Richard Meissner - ", "fullyImplemented": true, - "id": 1505, + "id": 1744, "linearizedBaseContracts": [ - 1505 + 1744 ], "name": "SignatureValidator", "nodeType": "ContractDefinition", "nodes": [ { "body": { - "id": 1488, + "id": 1727, "nodeType": "Block", - "src": "641:164:9", + "src": "643:164:15", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 1463, + "id": 1702, "name": "v", "nodeType": "VariableDeclaration", - "scope": 1489, - "src": "651:7:9", + "scope": 1728, + "src": "653:7:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -894,10 +835,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1462, + "id": 1701, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "651:5:9", + "src": "653:5:15", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -907,21 +848,21 @@ "visibility": "internal" } ], - "id": 1464, + "id": 1703, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "651:7:9" + "src": "653:7:15" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 1466, + "id": 1705, "name": "r", "nodeType": "VariableDeclaration", - "scope": 1489, - "src": "668:9:9", + "scope": 1728, + "src": "670:9:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -929,10 +870,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1465, + "id": 1704, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "668:7:9", + "src": "670:7:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -942,21 +883,21 @@ "visibility": "internal" } ], - "id": 1467, + "id": 1706, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "668:9:9" + "src": "670:9:15" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 1469, + "id": 1708, "name": "s", "nodeType": "VariableDeclaration", - "scope": 1489, - "src": "687:9:9", + "scope": 1728, + "src": "689:9:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -964,10 +905,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1468, + "id": 1707, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "687:7:9", + "src": "689:7:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -977,15 +918,15 @@ "visibility": "internal" } ], - "id": 1470, + "id": 1709, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "687:9:9" + "src": "689:9:15" }, { "expression": { "argumentTypes": null, - "id": 1479, + "id": 1718, "isConstant": false, "isLValue": false, "isPure": false, @@ -995,12 +936,12 @@ "components": [ { "argumentTypes": null, - "id": 1471, + "id": 1710, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "707:1:9", + "referencedDeclaration": 1702, + "src": "709:1:15", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1008,12 +949,12 @@ }, { "argumentTypes": null, - "id": 1472, + "id": 1711, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1466, - "src": "710:1:9", + "referencedDeclaration": 1705, + "src": "712:1:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1021,26 +962,26 @@ }, { "argumentTypes": null, - "id": 1473, + "id": 1712, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1469, - "src": "713:1:9", + "referencedDeclaration": 1708, + "src": "715:1:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 1474, + "id": 1713, "isConstant": false, "isInlineArray": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "TupleExpression", - "src": "706:9:9", + "src": "708:9:15", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(uint8,bytes32,bytes32)" @@ -1053,12 +994,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1476, + "id": 1715, "name": "messageSignature", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1455, - "src": "733:16:9", + "referencedDeclaration": 1694, + "src": "735:16:15", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1066,12 +1007,12 @@ }, { "argumentTypes": null, - "id": 1477, + "id": 1716, "name": "pos", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "751:3:9", + "referencedDeclaration": 1696, + "src": "753:3:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1089,18 +1030,18 @@ "typeString": "uint256" } ], - "id": 1475, + "id": 1714, "name": "signatureSplit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1504, - "src": "718:14:9", + "referencedDeclaration": 1743, + "src": "720:14:15", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "function (bytes memory,uint256) pure returns (uint8,bytes32,bytes32)" } }, - "id": 1478, + "id": 1717, "isConstant": false, "isLValue": false, "isPure": false, @@ -1108,21 +1049,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "718:37:9", + "src": "720:37:15", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint8_$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(uint8,bytes32,bytes32)" } }, - "src": "706:49:9", + "src": "708:49:15", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1480, + "id": 1719, "nodeType": "ExpressionStatement", - "src": "706:49:9" + "src": "708:49:15" }, { "expression": { @@ -1130,12 +1071,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1482, + "id": 1721, "name": "txHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1453, - "src": "782:6:9", + "referencedDeclaration": 1692, + "src": "784:6:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1143,12 +1084,12 @@ }, { "argumentTypes": null, - "id": 1483, + "id": 1722, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1463, - "src": "790:1:9", + "referencedDeclaration": 1702, + "src": "792:1:15", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1156,12 +1097,12 @@ }, { "argumentTypes": null, - "id": 1484, + "id": 1723, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1466, - "src": "793:1:9", + "referencedDeclaration": 1705, + "src": "795:1:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1169,12 +1110,12 @@ }, { "argumentTypes": null, - "id": 1485, + "id": 1724, "name": "s", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1469, - "src": "796:1:9", + "referencedDeclaration": 1708, + "src": "798:1:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1200,18 +1141,18 @@ "typeString": "bytes32" } ], - "id": 1481, + "id": 1720, "name": "ecrecover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1765, - "src": "772:9:9", + "referencedDeclaration": 2651, + "src": "774:9:15", "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": 1486, + "id": 1725, "isConstant": false, "isLValue": false, "isPure": false, @@ -1219,21 +1160,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "772:26:9", + "src": "774:26:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "functionReturnParameters": 1461, - "id": 1487, + "functionReturnParameters": 1700, + "id": 1726, "nodeType": "Return", - "src": "765:33:9" + "src": "767:33:15" } ] }, "documentation": "@dev Recovers address who signed the message \n @param txHash operation ethereum signed message hash\n @param messageSignature message `txHash` signature\n @param pos which signature to read", - "id": 1489, + "id": 1728, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1241,16 +1182,16 @@ "name": "recoverKey", "nodeType": "FunctionDefinition", "parameters": { - "id": 1458, + "id": 1697, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1453, + "id": 1692, "name": "txHash", "nodeType": "VariableDeclaration", - "scope": 1489, - "src": "507:14:9", + "scope": 1728, + "src": "507:14:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1258,10 +1199,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1452, + "id": 1691, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "507:7:9", + "src": "507:7:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1272,11 +1213,11 @@ }, { "constant": false, - "id": 1455, + "id": 1694, "name": "messageSignature", "nodeType": "VariableDeclaration", - "scope": 1489, - "src": "532:22:9", + "scope": 1728, + "src": "532:22:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1284,10 +1225,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1454, + "id": 1693, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "532:5:9", + "src": "532:5:15", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1298,11 +1239,11 @@ }, { "constant": false, - "id": 1457, + "id": 1696, "name": "pos", "nodeType": "VariableDeclaration", - "scope": 1489, - "src": "564:11:9", + "scope": 1728, + "src": "564:11:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1310,10 +1251,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1456, + "id": 1695, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "564:7:9", + "src": "564:7:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1323,20 +1264,20 @@ "visibility": "internal" } ], - "src": "497:84:9" + "src": "497:84:15" }, "payable": false, "returnParameters": { - "id": 1461, + "id": 1700, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1460, + "id": 1699, "name": "", "nodeType": "VariableDeclaration", - "scope": 1489, - "src": "627:7:9", + "scope": 1728, + "src": "629:7:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1344,10 +1285,10 @@ "typeString": "address" }, "typeName": { - "id": 1459, + "id": 1698, "name": "address", "nodeType": "ElementaryTypeName", - "src": "627:7:9", + "src": "629:7:15", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1357,95 +1298,95 @@ "visibility": "internal" } ], - "src": "626:9:9" + "src": "628:9:15" }, - "scope": 1505, - "src": "477:328:9", + "scope": 1744, + "src": "477:330:15", "stateMutability": "pure", "superFunction": null, - "visibility": "public" + "visibility": "internal" }, { "body": { - "id": 1503, + "id": 1742, "nodeType": "Block", - "src": "1117:777:9", + "src": "1121:777:15", "statements": [ { "externalReferences": [ { "r": { - "declaration": 1498, + "declaration": 1737, "isOffset": false, "isSlot": false, - "src": "1419:1:9", + "src": "1423:1:15", "valueSize": 1 } }, { "pos": { - "declaration": 1493, + "declaration": 1732, "isOffset": false, "isSlot": false, - "src": "1402:3:9", + "src": "1406:3:15", "valueSize": 1 } }, { "signatures": { - "declaration": 1491, + "declaration": 1730, "isOffset": false, "isSlot": false, - "src": "1434:10:9", + "src": "1438:10:15", "valueSize": 1 } }, { "s": { - "declaration": 1500, + "declaration": 1739, "isOffset": false, "isSlot": false, - "src": "1484:1:9", + "src": "1488:1:15", "valueSize": 1 } }, { "signatures": { - "declaration": 1491, + "declaration": 1730, "isOffset": false, "isSlot": false, - "src": "1499:10:9", + "src": "1503:10:15", "valueSize": 1 } }, { "v": { - "declaration": 1496, + "declaration": 1735, "isOffset": false, "isSlot": false, - "src": "1815:1:9", + "src": "1819:1:15", "valueSize": 1 } }, { "signatures": { - "declaration": 1491, + "declaration": 1730, "isOffset": false, "isSlot": false, - "src": "1834:10:9", + "src": "1838:10:15", "valueSize": 1 } } ], - "id": 1502, + "id": 1741, "nodeType": "InlineAssembly", "operations": "{\n let signaturePos := mul(0x41, pos)\n r := mload(add(signatures, add(signaturePos, 0x20)))\n s := mload(add(signatures, add(signaturePos, 0x40)))\n v := and(mload(add(signatures, add(signaturePos, 0x41))), 0xff)\n}", - "src": "1349:545:9" + "src": "1353:545:15" } ] }, "documentation": "@dev divides bytes signature into `uint8 v, bytes32 r, bytes32 s`\n @param pos which signature to read\n @param signatures concatenated rsv signatures", - "id": 1504, + "id": 1743, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -1453,16 +1394,16 @@ "name": "signatureSplit", "nodeType": "FunctionDefinition", "parameters": { - "id": 1494, + "id": 1733, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1491, + "id": 1730, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "1006:16:9", + "scope": 1743, + "src": "1008:16:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1470,10 +1411,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1490, + "id": 1729, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1006:5:9", + "src": "1008:5:15", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1484,11 +1425,11 @@ }, { "constant": false, - "id": 1493, + "id": 1732, "name": "pos", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "1024:11:9", + "scope": 1743, + "src": "1026:11:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1496,10 +1437,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1492, + "id": 1731, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1024:7:9", + "src": "1026:7:15", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1509,20 +1450,20 @@ "visibility": "internal" } ], - "src": "1005:31:9" + "src": "1007:31:15" }, "payable": false, "returnParameters": { - "id": 1501, + "id": 1740, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1496, + "id": 1735, "name": "v", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "1082:7:9", + "scope": 1743, + "src": "1086:7:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1530,10 +1471,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1495, + "id": 1734, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1082:5:9", + "src": "1086:5:15", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -1544,11 +1485,11 @@ }, { "constant": false, - "id": 1498, + "id": 1737, "name": "r", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "1091:9:9", + "scope": 1743, + "src": "1095:9:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1556,10 +1497,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1497, + "id": 1736, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1091:7:9", + "src": "1095:7:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1570,11 +1511,11 @@ }, { "constant": false, - "id": 1500, + "id": 1739, "name": "s", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "1102:9:9", + "scope": 1743, + "src": "1106:9:15", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1582,10 +1523,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1499, + "id": 1738, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1102:7:9", + "src": "1106:7:15", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1595,26 +1536,26 @@ "visibility": "internal" } ], - "src": "1081:31:9" + "src": "1085:31:15" }, - "scope": 1505, - "src": "982:912:9", + "scope": 1744, + "src": "984:914:15", "stateMutability": "pure", "superFunction": null, - "visibility": "public" + "visibility": "internal" } ], - "scope": 1506, - "src": "221:1675:9" + "scope": 1745, + "src": "221:1679:15" } ], - "src": "0:1897:9" + "src": "0:1901:15" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": {}, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-20T07:57:27.028Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:56.489Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/SocialRecoveryModule.json b/safe-contracts/build/contracts/SocialRecoveryModule.json index eb69ecee..cb87d09d 100644 --- a/safe-contracts/build/contracts/SocialRecoveryModule.json +++ b/safe-contracts/build/contracts/SocialRecoveryModule.json @@ -8,7 +8,7 @@ "outputs": [ { "name": "", - "type": "uint8" + "type": "uint256" } ], "payable": false, @@ -160,7 +160,7 @@ }, { "name": "_threshold", - "type": "uint8" + "type": "uint256" } ], "name": "setup", @@ -244,24 +244,24 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b506117d0806100206000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633cf5b309146100d557806342cde4e814610148578063481c6a751461017957806368125a1b146101d057806377231eaa1461022b57806379716e43146102ae5780637de7edef146102df5780639ca89d0d14610322578063a3f4df7e1461036b578063ae68b056146103fb578063b79ffaff14610480578063ce146828146104e9578063e52cb36a14610556578063ffa1ad741461059f575b600080fd5b3480156100e157600080fd5b5061014660048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff16906020019092919050505061062f565b005b34801561015457600080fd5b5061015d610994565b604051808260ff1660ff16815260200191505060405180910390f35b34801561018557600080fd5b5061018e6109a7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101dc57600080fd5b50610211600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109cd565b604051808215151515815260200191505060405180910390f35b34801561023757600080fd5b506102ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109ed565b005b3480156102ba57600080fd5b506102dd6004803603810190808035600019169060200190929190505050610f9e565b005b3480156102eb57600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611197565b005b34801561032e57600080fd5b50610351600480360381019080803560001916906020019092919050505061137a565b604051808215151515815260200191505060405180910390f35b34801561037757600080fd5b50610380611479565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103c05780820151818401526020810190506103a5565b50505050905090810190601f1680156103ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561040757600080fd5b50610462600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506114b2565b60405180826000191660001916815260200191505060405180910390f35b34801561048c57600080fd5b506104cf6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061151e565b604051808215151515815260200191505060405180910390f35b3480156104f557600080fd5b506105146004803603810190808035906020019092919050505061154d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561056257600080fd5b50610585600480360381019080803560001916906020019092919050505061158b565b604051808215151515815260200191505060405180910390f35b3480156105ab57600080fd5b506105b46115ab565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105f45780820151818401526020810190506105d9565b50505050905090810190601f1680156106215780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008083518360ff16111515156106d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5468726573686f6c642063616e6e6f742065786365656420667269656e64732081526020017f636f756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60028360ff1610151515610750576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107586115e4565b600091505b835182101561095c57838281518110151561077457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561080f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156108f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4475706c696361746520667269656e6420616464726573732070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818060010192505061075d565b83600290805190602001906109729291906116d7565b5082600160146101000a81548160ff021916908360ff16021790555050505050565b600160149054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b60606000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610ad8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509150610c05826114b2565b905060046000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610ca5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610cae8161137a565b1515610d48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6181526020017f74696f6e7300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160046000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e5957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610e99578082015181840152602081019050610e7e565b50505050905090810190601f168015610ec65780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610ee857600080fd5b505af1158015610efc573d6000803e3d6000fd5b505050506040513d6020811015610f1257600080fd5b81019080805190602001909291905050501515610f97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611085576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60046000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515611123576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b600160056000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611282576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611337576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60028054905081101561146d5760056000856000191660001916815260200190815260200160002060006002838154811015156113bc57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561143d5781806001019250505b600160149054906101000a900460ff1660ff168214156114605760019250611472565b8080600101915050611383565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b6020831015156114ea57805182526020820191506020810190506020830392506114c5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60028181548110151561155c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611750579160200282015b8281111561174f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906116f7565b5b50905061175d9190611761565b5090565b6117a191905b8082111561179d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611767565b5090565b905600a165627a7a72305820f1f6099fda98550b4d5ae1a04d18e83b8da4cebe4bbae1404aa3b05b167841d70029", - "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680633cf5b309146100d557806342cde4e814610148578063481c6a751461017957806368125a1b146101d057806377231eaa1461022b57806379716e43146102ae5780637de7edef146102df5780639ca89d0d14610322578063a3f4df7e1461036b578063ae68b056146103fb578063b79ffaff14610480578063ce146828146104e9578063e52cb36a14610556578063ffa1ad741461059f575b600080fd5b3480156100e157600080fd5b5061014660048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803560ff16906020019092919050505061062f565b005b34801561015457600080fd5b5061015d610994565b604051808260ff1660ff16815260200191505060405180910390f35b34801561018557600080fd5b5061018e6109a7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101dc57600080fd5b50610211600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109cd565b604051808215151515815260200191505060405180910390f35b34801561023757600080fd5b506102ac600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109ed565b005b3480156102ba57600080fd5b506102dd6004803603810190808035600019169060200190929190505050610f9e565b005b3480156102eb57600080fd5b50610320600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611197565b005b34801561032e57600080fd5b50610351600480360381019080803560001916906020019092919050505061137a565b604051808215151515815260200191505060405180910390f35b34801561037757600080fd5b50610380611479565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103c05780820151818401526020810190506103a5565b50505050905090810190601f1680156103ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561040757600080fd5b50610462600480360381019080803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192905050506114b2565b60405180826000191660001916815260200191505060405180910390f35b34801561048c57600080fd5b506104cf6004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061151e565b604051808215151515815260200191505060405180910390f35b3480156104f557600080fd5b506105146004803603810190808035906020019092919050505061154d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561056257600080fd5b50610585600480360381019080803560001916906020019092919050505061158b565b604051808215151515815260200191505060405180910390f35b3480156105ab57600080fd5b506105b46115ab565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105f45780820151818401526020810190506105d9565b50505050905090810190601f1680156106215780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60008083518360ff16111515156106d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5468726573686f6c642063616e6e6f742065786365656420667269656e64732081526020017f636f756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60028360ff1610151515610750576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107586115e4565b600091505b835182101561095c57838281518110151561077457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561080f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515156108f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4475706c696361746520667269656e6420616464726573732070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818060010192505061075d565b83600290805190602001906109729291906116d7565b5082600160146101000a81548160ff021916908360ff16021790555050505050565b600160149054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60036020528060005260406000206000915054906101000a900460ff1681565b60606000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610ad8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509150610c05826114b2565b905060046000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610ca5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610cae8161137a565b1515610d48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6181526020017f74696f6e7300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160046000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e5957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610e99578082015181840152602081019050610e7e565b50505050905090810190601f168015610ec65780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610ee857600080fd5b505af1158015610efc573d6000803e3d6000fd5b505050506040513d6020811015610f1257600080fd5b81019080805190602001909291905050501515610f97576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611085576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60046000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515611123576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b600160056000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611282576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611337576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60028054905081101561146d5760056000856000191660001916815260200190815260200160002060006002838154811015156113bc57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561143d5781806001019250505b600160149054906101000a900460ff1660ff168214156114605760019250611472565b8080600101915050611383565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b6020831015156114ea57805182526020820191506020810190506020830392506114c5565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60056020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60028181548110151561155c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60046020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611750579160200282015b8281111561174f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906116f7565b5b50905061175d9190611761565b5090565b6117a191905b8082111561179d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611767565b5090565b905600a165627a7a72305820f1f6099fda98550b4d5ae1a04d18e83b8da4cebe4bbae1404aa3b05b167841d70029", - "sourceMap": "306:3656:19:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;306:3656:19;;;;;;;", - "deployedSourceMap": "306:3656:19:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1216:638;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1216:638:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;460:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;460:22:19;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;583:41:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;583:41:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2510:625;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2510:625:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1967:210;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1967:210:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;3296:405:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3296:405:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;353:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:54: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;353:54:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3830:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3830:130:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;827:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:65:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;488:24:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;692:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;692:43:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;413:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;413: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;413:40:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1216:638;1511:9;1566:14;1320:8;:15;1306:10;:29;;;;1298:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1409:1;1395:10;:15;;;;1387:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1452:12;:10;:12::i;:::-;1523:1;1511:13;;1506:282;1530:8;:15;1526:1;:19;1506:282;;;1583:8;1592:1;1583:11;;;;;;;;;;;;;;;;;;1566:28;;1626:1;1616:6;:11;;;;1608:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1686:8;:16;1695:6;1686:16;;;;;;;;;;;;;;;;;;;;;;;;;1685:17;1677:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1773:4;1754:8;:16;1763:6;1754:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;1547:3;;;;;;;1506:282;;;1807:8;1797:7;:18;;;;;;;;;;;;:::i;:::-;;1837:10;1825:9;;:22;;;;;;;;;;;;;;;;;;1216:638;;;;:::o;460:22::-;;;;;;;;;;;;;:::o;262:28:7:-;;;;;;;;;;;;;:::o;583:41:19:-;;;;;;;;;;;;;;;;;;;;;;:::o;2510:625::-;2636:17;2758:16;939:8;:20;948:10;939:20;;;;;;;;;;;;;;;;;;;;;;;;;931:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2718:9;2729:8;2739;2656:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2656:92:19;;;;;;;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;;;2656:92:19;2636:112;;2777:17;2789:4;2777:11;:17::i;:::-;2758:36;;2813:10;:20;2824:8;2813:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2812:21;2804:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2881:38;2910:8;2881:28;:38::i;:::-;2873:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2994:4;2971:10;:20;2982:8;2971:20;;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3016:7;;;;;;;;;;;:33;;;3058:7;;;;;;;;;;;3068:1;3071:4;3077:19;3016: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;3016:81:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3016:81:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3016:81:19;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3016:81:19;;;;;;;;;;;;;;;;3008:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2510:625;;;;;:::o;1967:210::-;939:8;:20;948:10;939:20;;;;;;;;;;;;;;;;;;;;;;;;;931:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2070:10;:20;2081:8;2070:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2069:21;2061:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2166:4;2130:11;:21;2142:8;2130:21;;;;;;;;;;;;;;;;;:33;2152:10;2130:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1967:210;:::o;626:248:5:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;3296:405:19:-;3397:4;3417:25;3457:9;3469:1;3457:13;;3452:221;3476:7;:14;;;;3472:1;:18;3452:221;;;3515:11;:21;3527:8;3515:21;;;;;;;;;;;;;;;;;:33;3537:7;3545:1;3537:10;;;;;;;;;;;;;;;;;;;;;;;;;;;3515:33;;;;;;;;;;;;;;;;;;;;;;;;;3511:74;;;3566:19;;;;;;;3511:74;3624:9;;;;;;;;;;;3603:30;;:17;:30;3599:63;;;3658:4;3651:11;;;;3599:63;3492:3;;;;;;;3452:221;;;3689:5;3682:12;;3296:405;;;;;;:::o;353:54::-;;;;;;;;;;;;;;;;;;;;:::o;3830:130::-;3908:7;3948:4;3938: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;;;3938:15:19;;;;;;;;;;;;;;;;3931:22;;3830:130;;;:::o;827:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;488:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;692:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;413:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:7:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o;306:3656:19:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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], \"Method can only be called by a friend\");\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, \"Threshold cannot exceed friends count\");\n require(_threshold >= 2, \"At least 2 friends required\");\n setManager();\n // Set allowed friends.\n for (uint256 i = 0; i < _friends.length; i++) {\n address friend = _friends[i];\n require(friend != 0, \"Invalid friend address provided\");\n require(!isFriend[friend], \"Duplicate friend address provided\");\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], \"Recovery already executed\");\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 onlyFriend\n {\n bytes memory data = abi.encodeWithSignature(\"swapOwner(address,address,address)\", prevOwner, oldOwner, newOwner);\n bytes32 dataHash = getDataHash(data);\n require(!isExecuted[dataHash], \"Recovery already executed\");\n require(isConfirmedByRequiredFriends(dataHash), \"Recovery has not enough confirmations\");\n isExecuted[dataHash] = true;\n require(manager.execTransactionFromModule(address(manager), 0, data, Enum.Operation.Call), \"Could not execute recovery\");\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", + "bytecode": "0x608060405234801561001057600080fd5b50611790806100206000396000f3006080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342cde4e8146100d5578063481c6a75146101005780634ab884271461015757806368125a1b146101c757806377231eaa1461022257806379716e43146102a55780637de7edef146102d65780639ca89d0d14610319578063a3f4df7e14610362578063ae68b056146103f2578063b79ffaff14610477578063ce146828146104e0578063e52cb36a1461054d578063ffa1ad7414610596575b600080fd5b3480156100e157600080fd5b506100ea610626565b6040518082815260200191505060405180910390f35b34801561010c57600080fd5b5061011561062c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016357600080fd5b506101c56004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610652565b005b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099d565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b506102a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b005b3480156102b157600080fd5b506102d46004803603810190808035600019169060200190929190505050610f6e565b005b3480156102e257600080fd5b50610317600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611167565b005b34801561032557600080fd5b50610348600480360381019080803560001916906020019092919050505061134a565b604051808215151515815260200191505060405180910390f35b34801561036e57600080fd5b50610377611439565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b757808201518184015260208101905061039c565b50505050905090810190601f1680156103e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103fe57600080fd5b50610459600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611472565b60405180826000191660001916815260200191505060405180910390f35b34801561048357600080fd5b506104c66004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114de565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b5061050b6004803603810190808035906020019092919050505061150d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055957600080fd5b5061057c600480360381019080803560001916906020019092919050505061154b565b604051808215151515815260200191505060405180910390f35b3480156105a257600080fd5b506105ab61156b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105eb5780820151818401526020810190506105d0565b50505050905090810190601f1680156106185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080835183111515156106f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5468726573686f6c642063616e6e6f742065786365656420667269656e64732081526020017f636f756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002831015151561076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107756115a4565b600091505b835182101561097957838281518110151561079157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610914576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4475706c696361746520667269656e6420616464726573732070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818060010192505061077a565b836003908051906020019061098f929190611697565b508260028190555050505050565b60046020528060005260406000206000915054906101000a900460ff1681565b60606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509150610bd582611472565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610c7e8161134a565b1515610d18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6181526020017f74696f6e7300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e2957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610eb857600080fd5b505af1158015610ecc573d6000803e3d6000fd5b505050506040513d6020811015610ee257600080fd5b81019080805190602001909291905050501515610f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611055576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60038054905081101561142d57600660008560001916600019168152602001908152602001600020600060038381548110151561138c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561140d5781806001019250505b6002548214156114205760019250611432565b8080600101915050611353565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b6020831015156114aa5780518252602082019150602081019050602083039250611485565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60038181548110151561151c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611710579160200282015b8281111561170f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906116b7565b5b50905061171d9190611721565b5090565b61176191905b8082111561175d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611727565b5090565b905600a165627a7a72305820f0b8225dc8646b27a4eb559b8965458750244631494ed3b01cb42cf8380bff870029", + "deployedBytecode": "0x6080604052600436106100d0576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806342cde4e8146100d5578063481c6a75146101005780634ab884271461015757806368125a1b146101c757806377231eaa1461022257806379716e43146102a55780637de7edef146102d65780639ca89d0d14610319578063a3f4df7e14610362578063ae68b056146103f2578063b79ffaff14610477578063ce146828146104e0578063e52cb36a1461054d578063ffa1ad7414610596575b600080fd5b3480156100e157600080fd5b506100ea610626565b6040518082815260200191505060405180910390f35b34801561010c57600080fd5b5061011561062c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561016357600080fd5b506101c56004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190929190505050610652565b005b3480156101d357600080fd5b50610208600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099d565b604051808215151515815260200191505060405180910390f35b34801561022e57600080fd5b506102a3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506109bd565b005b3480156102b157600080fd5b506102d46004803603810190808035600019169060200190929190505050610f6e565b005b3480156102e257600080fd5b50610317600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611167565b005b34801561032557600080fd5b50610348600480360381019080803560001916906020019092919050505061134a565b604051808215151515815260200191505060405180910390f35b34801561036e57600080fd5b50610377611439565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103b757808201518184015260208101905061039c565b50505050905090810190601f1680156103e45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103fe57600080fd5b50610459600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611472565b60405180826000191660001916815260200191505060405180910390f35b34801561048357600080fd5b506104c66004803603810190808035600019169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114de565b604051808215151515815260200191505060405180910390f35b3480156104ec57600080fd5b5061050b6004803603810190808035906020019092919050505061150d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055957600080fd5b5061057c600480360381019080803560001916906020019092919050505061154b565b604051808215151515815260200191505060405180910390f35b3480156105a257600080fd5b506105ab61156b565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105eb5780820151818401526020810190506105d0565b50505050905090810190601f1680156106185780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60025481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080835183111515156106f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5468726573686f6c642063616e6e6f742065786365656420667269656e64732081526020017f636f756e7400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6002831015151561076d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4174206c65617374203220667269656e6473207265717569726564000000000081525060200191505060405180910390fd5b6107756115a4565b600091505b835182101561097957838281518110151561079157fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff161415151561082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f496e76616c696420667269656e6420616464726573732070726f76696465640081525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515610914576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f4475706c696361746520667269656e6420616464726573732070726f7669646581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550818060010192505061077a565b836003908051906020019061098f929190611697565b508260028190555050505050565b60046020528060005260406000206000915054906101000a900460ff1681565b60606000600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610aa8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b848484604051602401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200193505050506040516020818303038152906040527fe318b52b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050509150610bd582611472565b905060056000826000191660001916815260200190815260200160002060009054906101000a900460ff16151515610c75576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b610c7e8161134a565b1515610d18576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6181526020017f74696f6e7300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160056000836000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660008560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610e2957fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610e69578082015181840152602081019050610e4e565b50505050905090810190601f168015610e965780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610eb857600080fd5b505af1158015610ecc573d6000803e3d6000fd5b505050506040513d6020811015610ee257600080fd5b81019080805190602001909291905050501515610f67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f436f756c64206e6f742065786563757465207265636f7665727900000000000081525060200191505060405180910390fd5b5050505050565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611055576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642062792061206681526020017f7269656e6400000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60056000826000191660001916815260200190815260200160002060009054906101000a900460ff161515156110f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5265636f7665727920616c72656164792065786563757465640000000000000081525060200191505060405180910390fd5b600160066000836000191660001916815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008090505b60038054905081101561142d57600660008560001916600019168152602001908152602001600020600060038381548110151561138c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561140d5781806001019250505b6002548214156114205760019250611432565b8080600101915050611353565b600092505b5050919050565b6040805190810160405280601681526020017f536f6369616c205265636f76657279204d6f64756c650000000000000000000081525081565b6000816040518082805190602001908083835b6020831015156114aa5780518252602082019150602081019050602083039250611485565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209050919050565b60066020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60038181548110151561151c57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611654576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b828054828255906000526020600020908101928215611710579160200282015b8281111561170f5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906116b7565b5b50905061171d9190611721565b5090565b61176191905b8082111561175d57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101611727565b5090565b905600a165627a7a72305820f0b8225dc8646b27a4eb559b8965458750244631494ed3b01cb42cf8380bff870029", + "sourceMap": "306:3660:19:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;306:3660:19;;;;;;;", + "deployedSourceMap": "306:3660:19:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;460:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;460:24:19;;;;;;;;;;;;;;;;;;;;;;;262:28:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;1218:640:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1218:640:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;585:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;585:41:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2514:625;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2514:625:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1971:210;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1971:210:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;3300:405:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3300:405:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;353:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:54: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;353:54:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3834:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3834:130:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;829:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;829:65:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;490:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;490:24:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;694:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;694:43:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;413:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;413: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;413:40:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;460:24;;;;:::o;262:28:7:-;;;;;;;;;;;;;:::o;1218:640:19:-;1515:9;1570:14;1324:8;:15;1310:10;:29;;1302:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1413:1;1399:10;:15;;1391:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1456:12;:10;:12::i;:::-;1527:1;1515:13;;1510:282;1534:8;:15;1530:1;:19;1510:282;;;1587:8;1596:1;1587:11;;;;;;;;;;;;;;;;;;1570:28;;1630:1;1620:6;:11;;;;1612:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1690:8;:16;1699:6;1690:16;;;;;;;;;;;;;;;;;;;;;;;;;1689:17;1681:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1777:4;1758:8;:16;1767:6;1758:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;1551:3;;;;;;;1510:282;;;1811:8;1801:7;:18;;;;;;;;;;;;:::i;:::-;;1841:10;1829:9;:22;;;;1218:640;;;;:::o;585:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;2514:625::-;2640:17;2762:16;941:8;:20;950:10;941:20;;;;;;;;;;;;;;;;;;;;;;;;;933:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2722:9;2733:8;2743;2660:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2660:92:19;;;;;;;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;;;2660:92:19;2640:112;;2781:17;2793:4;2781:11;:17::i;:::-;2762:36;;2817:10;:20;2828:8;2817:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2816:21;2808:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2885:38;2914:8;2885:28;:38::i;:::-;2877:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2998:4;2975:10;:20;2986:8;2975:20;;;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3020:7;;;;;;;;;;;:33;;;3062:7;;;;;;;;;;;3072:1;3075:4;3081:19;3020: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;3020:81:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3020:81:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3020:81:19;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3020:81:19;;;;;;;;;;;;;;;;3012:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2514:625;;;;;:::o;1971:210::-;941:8;:20;950:10;941:20;;;;;;;;;;;;;;;;;;;;;;;;;933:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:10;:20;2085:8;2074:20;;;;;;;;;;;;;;;;;;;;;;;;;;;2073:21;2065:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2170:4;2134:11;:21;2146:8;2134:21;;;;;;;;;;;;;;;;;:33;2156:10;2134:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;1971:210;:::o;626:248:5:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;3300:405:19:-;3401:4;3421:25;3461:9;3473:1;3461:13;;3456:221;3480:7;:14;;;;3476:1;:18;3456:221;;;3519:11;:21;3531:8;3519:21;;;;;;;;;;;;;;;;;:33;3541:7;3549:1;3541:10;;;;;;;;;;;;;;;;;;;;;;;;;;;3519:33;;;;;;;;;;;;;;;;;;;;;;;;;3515:74;;;3570:19;;;;;;;3515:74;3628:9;;3607:17;:30;3603:63;;;3662:4;3655:11;;;;3603:63;3496:3;;;;;;;3456:221;;;3693:5;3686:12;;3300:405;;;;;;:::o;353:54::-;;;;;;;;;;;;;;;;;;;;:::o;3834:130::-;3912:7;3952:4;3942: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;;;3942:15:19;;;;;;;;;;;;;;;;3935:22;;3834:130;;;:::o;829:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;490:24::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;694:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;413:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:7:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o;306:3660:19:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::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 uint256 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], \"Method can only be called by a friend\");\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, uint256 _threshold)\n public\n {\n require(_threshold <= _friends.length, \"Threshold cannot exceed friends count\");\n require(_threshold >= 2, \"At least 2 friends required\");\n setManager();\n // Set allowed friends.\n for (uint256 i = 0; i < _friends.length; i++) {\n address friend = _friends[i];\n require(friend != 0, \"Invalid friend address provided\");\n require(!isFriend[friend], \"Duplicate friend address provided\");\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], \"Recovery already executed\");\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 onlyFriend\n {\n bytes memory data = abi.encodeWithSignature(\"swapOwner(address,address,address)\", prevOwner, oldOwner, newOwner);\n bytes32 dataHash = getDataHash(data);\n require(!isExecuted[dataHash], \"Recovery already executed\");\n require(isConfirmedByRequiredFriends(dataHash), \"Recovery has not enough confirmations\");\n isExecuted[dataHash] = true;\n require(manager.execTransactionFromModule(address(manager), 0, data, Enum.Operation.Call), \"Could not execute recovery\");\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": [ - 2344 + 2303 ] }, - "id": 2345, + "id": 2304, "nodeType": "SourceUnit", "nodes": [ { - "id": 2081, + "id": 2040, "literals": [ "solidity", "0.4", @@ -273,9 +273,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 2082, + "id": 2041, "nodeType": "ImportDirective", - "scope": 2345, + "scope": 2304, "sourceUnit": 31, "src": "24:21:19", "symbolAliases": [], @@ -284,9 +284,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 2083, + "id": 2042, "nodeType": "ImportDirective", - "scope": 2345, + "scope": 2304, "sourceUnit": 733, "src": "46:23:19", "symbolAliases": [], @@ -295,9 +295,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 2084, + "id": 2043, "nodeType": "ImportDirective", - "scope": 2345, + "scope": 2304, "sourceUnit": 1104, "src": "70:30:19", "symbolAliases": [], @@ -306,10 +306,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 2085, + "id": 2044, "nodeType": "ImportDirective", - "scope": 2345, - "sourceUnit": 1514, + "scope": 2304, + "sourceUnit": 1512, "src": "101:29:19", "symbolAliases": [], "unitAlias": "" @@ -320,7 +320,7 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2086, + "id": 2045, "name": "Module", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 732, @@ -330,7 +330,7 @@ "typeString": "contract Module" } }, - "id": 2087, + "id": 2046, "nodeType": "InheritanceSpecifier", "src": "339:6:19" } @@ -338,27 +338,27 @@ "contractDependencies": [ 632, 732, - 1663 + 1688 ], "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": 2344, + "id": 2303, "linearizedBaseContracts": [ - 2344, + 2303, 732, 632, - 1663 + 1688 ], "name": "SocialRecoveryModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2090, + "id": 2049, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2344, + "scope": 2303, "src": "353:54:19", "stateVariable": true, "storageLocation": "default", @@ -367,7 +367,7 @@ "typeString": "string" }, "typeName": { - "id": 2088, + "id": 2047, "name": "string", "nodeType": "ElementaryTypeName", "src": "353:6:19", @@ -379,7 +379,7 @@ "value": { "argumentTypes": null, "hexValue": "536f6369616c205265636f76657279204d6f64756c65", - "id": 2089, + "id": 2048, "isConstant": false, "isLValue": false, "isPure": true, @@ -398,10 +398,10 @@ }, { "constant": true, - "id": 2093, + "id": 2052, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2344, + "scope": 2303, "src": "413:40:19", "stateVariable": true, "storageLocation": "default", @@ -410,7 +410,7 @@ "typeString": "string" }, "typeName": { - "id": 2091, + "id": 2050, "name": "string", "nodeType": "ElementaryTypeName", "src": "413:6:19", @@ -422,7 +422,7 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 2092, + "id": 2051, "isConstant": false, "isLValue": false, "isPure": true, @@ -441,25 +441,25 @@ }, { "constant": false, - "id": 2095, + "id": 2054, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 2344, - "src": "460:22:19", + "scope": 2303, + "src": "460:24:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 2094, - "name": "uint8", + "id": 2053, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "460:5:19", + "src": "460:7:19", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, @@ -467,11 +467,11 @@ }, { "constant": false, - "id": 2098, + "id": 2057, "name": "friends", "nodeType": "VariableDeclaration", - "scope": 2344, - "src": "488:24:19", + "scope": 2303, + "src": "490:24:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -480,19 +480,19 @@ }, "typeName": { "baseType": { - "id": 2096, + "id": 2055, "name": "address", "nodeType": "ElementaryTypeName", - "src": "488:7:19", + "src": "490:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2097, + "id": 2056, "length": null, "nodeType": "ArrayTypeName", - "src": "488:9:19", + "src": "490:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -503,11 +503,11 @@ }, { "constant": false, - "id": 2102, + "id": 2061, "name": "isFriend", "nodeType": "VariableDeclaration", - "scope": 2344, - "src": "583:41:19", + "scope": 2303, + "src": "585:41:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -515,28 +515,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 2101, + "id": 2060, "keyType": { - "id": 2099, + "id": 2058, "name": "address", "nodeType": "ElementaryTypeName", - "src": "592:7:19", + "src": "594:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "583:25:19", + "src": "585:25:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2100, + "id": 2059, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "603:4:19", + "src": "605:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -548,11 +548,11 @@ }, { "constant": false, - "id": 2106, + "id": 2065, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 2344, - "src": "692:43:19", + "scope": 2303, + "src": "694:43:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -560,28 +560,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 2105, + "id": 2064, "keyType": { - "id": 2103, + "id": 2062, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "701:7:19", + "src": "703:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "692:25:19", + "src": "694:25:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 2104, + "id": 2063, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "712:4:19", + "src": "714:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -593,11 +593,11 @@ }, { "constant": false, - "id": 2112, + "id": 2071, "name": "isConfirmed", "nodeType": "VariableDeclaration", - "scope": 2344, - "src": "827:65:19", + "scope": 2303, + "src": "829:65:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -605,46 +605,46 @@ "typeString": "mapping(bytes32 => mapping(address => bool))" }, "typeName": { - "id": 2111, + "id": 2070, "keyType": { - "id": 2107, + "id": 2066, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "836:7:19", + "src": "838:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "827:46:19", + "src": "829:46:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" }, "valueType": { - "id": 2110, + "id": 2069, "keyType": { - "id": 2108, + "id": 2067, "name": "address", "nodeType": "ElementaryTypeName", - "src": "856:7:19", + "src": "858:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "847:25:19", + "src": "849:25:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2109, + "id": 2068, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "867:4:19", + "src": "869:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -657,9 +657,9 @@ }, { "body": { - "id": 2123, + "id": 2082, "nodeType": "Block", - "src": "921:98:19", + "src": "923:98:19", "statements": [ { "expression": { @@ -669,34 +669,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2115, + "id": 2074, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2102, - "src": "939:8:19", + "referencedDeclaration": 2061, + "src": "941:8:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2118, + "id": 2077, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2116, + "id": 2075, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2700, - "src": "948:3:19", + "referencedDeclaration": 2659, + "src": "950:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2117, + "id": 2076, "isConstant": false, "isLValue": false, "isPure": false, @@ -704,7 +704,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "948:10:19", + "src": "950:10:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -715,7 +715,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "939:20:19", + "src": "941:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -724,14 +724,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c6564206279206120667269656e64", - "id": 2119, + "id": 2078, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "961:39:19", + "src": "963:39:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a", @@ -751,21 +751,21 @@ "typeString": "literal_string \"Method can only be called by a friend\"" } ], - "id": 2114, + "id": 2073, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "931:7:19", + "referencedDeclaration": 2663, + "src": "933:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2120, + "id": 2079, "isConstant": false, "isLValue": false, "isPure": false, @@ -773,41 +773,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "931:70:19", + "src": "933:70:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2121, + "id": 2080, "nodeType": "ExpressionStatement", - "src": "931:70:19" + "src": "933:70:19" }, { - "id": 2122, + "id": 2081, "nodeType": "PlaceholderStatement", - "src": "1011:1:19" + "src": "1013:1:19" } ] }, "documentation": null, - "id": 2124, + "id": 2083, "name": "onlyFriend", "nodeType": "ModifierDefinition", "parameters": { - "id": 2113, + "id": 2072, "nodeType": "ParameterList", "parameters": [], - "src": "918:2:19" + "src": "920:2:19" }, - "src": "899:120:19", + "src": "901:120:19", "visibility": "internal" }, { "body": { - "id": 2198, + "id": 2157, "nodeType": "Block", - "src": "1288:566:19", + "src": "1292:566:19", "statements": [ { "expression": { @@ -819,22 +819,22 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2136, + "id": 2095, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2133, + "id": 2092, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "1306:10:19", + "referencedDeclaration": 2088, + "src": "1310:10:19", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", @@ -843,18 +843,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2134, + "id": 2093, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "1320:8:19", + "referencedDeclaration": 2086, + "src": "1324:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2135, + "id": 2094, "isConstant": false, "isLValue": false, "isPure": false, @@ -862,13 +862,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1320:15:19", + "src": "1324:15:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1306:29:19", + "src": "1310:29:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -877,14 +877,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f742065786365656420667269656e647320636f756e74", - "id": 2137, + "id": 2096, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1337:39:19", + "src": "1341:39:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257", @@ -904,21 +904,21 @@ "typeString": "literal_string \"Threshold cannot exceed friends count\"" } ], - "id": 2132, + "id": 2091, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "1298:7:19", + "referencedDeclaration": 2663, + "src": "1302:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2138, + "id": 2097, "isConstant": false, "isLValue": false, "isPure": false, @@ -926,15 +926,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1298:79:19", + "src": "1302:79:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2139, + "id": 2098, "nodeType": "ExpressionStatement", - "src": "1298:79:19" + "src": "1302:79:19" }, { "expression": { @@ -943,25 +943,25 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 2143, + "id": 2102, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2141, + "id": 2100, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "1395:10:19", + "referencedDeclaration": 2088, + "src": "1399:10:19", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", @@ -969,14 +969,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 2142, + "id": 2101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1409:1:19", + "src": "1413:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -984,7 +984,7 @@ }, "value": "2" }, - "src": "1395:15:19", + "src": "1399:15:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -993,14 +993,14 @@ { "argumentTypes": null, "hexValue": "4174206c65617374203220667269656e6473207265717569726564", - "id": 2144, + "id": 2103, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1412:29:19", + "src": "1416:29:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773", @@ -1020,21 +1020,21 @@ "typeString": "literal_string \"At least 2 friends required\"" } ], - "id": 2140, + "id": 2099, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "1387:7:19", + "referencedDeclaration": 2663, + "src": "1391:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2145, + "id": 2104, "isConstant": false, "isLValue": false, "isPure": false, @@ -1042,15 +1042,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1387:55:19", + "src": "1391:55:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2146, + "id": 2105, "nodeType": "ExpressionStatement", - "src": "1387:55:19" + "src": "1391:55:19" }, { "expression": { @@ -1058,18 +1058,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2147, + "id": 2106, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 731, - "src": "1452:10:19", + "src": "1456:10:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2148, + "id": 2107, "isConstant": false, "isLValue": false, "isPure": false, @@ -1077,34 +1077,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1452:12:19", + "src": "1456:12:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2149, + "id": 2108, "nodeType": "ExpressionStatement", - "src": "1452:12:19" + "src": "1456:12:19" }, { "body": { - "id": 2188, + "id": 2147, "nodeType": "Block", - "src": "1552:236:19", + "src": "1556:236:19", "statements": [ { "assignments": [ - 2162 + 2121 ], "declarations": [ { "constant": false, - "id": 2162, + "id": 2121, "name": "friend", "nodeType": "VariableDeclaration", - "scope": 2199, - "src": "1566:14:19", + "scope": 2158, + "src": "1570:14:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1112,10 +1112,10 @@ "typeString": "address" }, "typeName": { - "id": 2161, + "id": 2120, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1566:7:19", + "src": "1570:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1125,31 +1125,31 @@ "visibility": "internal" } ], - "id": 2166, + "id": 2125, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2163, + "id": 2122, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "1583:8:19", + "referencedDeclaration": 2086, + "src": "1587:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2165, + "id": 2124, "indexExpression": { "argumentTypes": null, - "id": 2164, + "id": 2123, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2151, - "src": "1592:1:19", + "referencedDeclaration": 2110, + "src": "1596:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1160,14 +1160,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1583:11:19", + "src": "1587:11:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1566:28:19" + "src": "1570:28:19" }, { "expression": { @@ -1179,19 +1179,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2170, + "id": 2129, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2168, + "id": 2127, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2162, - "src": "1616:6:19", + "referencedDeclaration": 2121, + "src": "1620:6:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1202,14 +1202,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2169, + "id": 2128, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1626:1:19", + "src": "1630:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1217,7 +1217,7 @@ }, "value": "0" }, - "src": "1616:11:19", + "src": "1620:11:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1226,14 +1226,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420667269656e6420616464726573732070726f7669646564", - "id": 2171, + "id": 2130, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1629:33:19", + "src": "1633:33:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55", @@ -1253,21 +1253,21 @@ "typeString": "literal_string \"Invalid friend address provided\"" } ], - "id": 2167, + "id": 2126, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "1608:7:19", + "referencedDeclaration": 2663, + "src": "1612:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2172, + "id": 2131, "isConstant": false, "isLValue": false, "isPure": false, @@ -1275,15 +1275,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1608:55:19", + "src": "1612:55:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2173, + "id": 2132, "nodeType": "ExpressionStatement", - "src": "1608:55:19" + "src": "1612:55:19" }, { "expression": { @@ -1291,7 +1291,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2178, + "id": 2137, "isConstant": false, "isLValue": false, "isPure": false, @@ -1299,31 +1299,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1685:17:19", + "src": "1689:17:19", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2175, + "id": 2134, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2102, - "src": "1686:8:19", + "referencedDeclaration": 2061, + "src": "1690:8:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2177, + "id": 2136, "indexExpression": { "argumentTypes": null, - "id": 2176, + "id": 2135, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2162, - "src": "1695:6:19", + "referencedDeclaration": 2121, + "src": "1699:6:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1334,7 +1334,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1686:16:19", + "src": "1690:16:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1348,14 +1348,14 @@ { "argumentTypes": null, "hexValue": "4475706c696361746520667269656e6420616464726573732070726f7669646564", - "id": 2179, + "id": 2138, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1704:35:19", + "src": "1708:35:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3", @@ -1375,21 +1375,21 @@ "typeString": "literal_string \"Duplicate friend address provided\"" } ], - "id": 2174, + "id": 2133, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "1677:7:19", + "referencedDeclaration": 2663, + "src": "1681:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2180, + "id": 2139, "isConstant": false, "isLValue": false, "isPure": false, @@ -1397,20 +1397,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1677:63:19", + "src": "1681:63:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2181, + "id": 2140, "nodeType": "ExpressionStatement", - "src": "1677:63:19" + "src": "1681:63:19" }, { "expression": { "argumentTypes": null, - "id": 2186, + "id": 2145, "isConstant": false, "isLValue": false, "isPure": false, @@ -1419,26 +1419,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2182, + "id": 2141, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2102, - "src": "1754:8:19", + "referencedDeclaration": 2061, + "src": "1758:8:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2184, + "id": 2143, "indexExpression": { "argumentTypes": null, - "id": 2183, + "id": 2142, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2162, - "src": "1763:6:19", + "referencedDeclaration": 2121, + "src": "1767:6:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1449,7 +1449,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1754:16:19", + "src": "1758:16:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1460,14 +1460,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2185, + "id": 2144, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1773:4:19", + "src": "1777:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -1475,15 +1475,15 @@ }, "value": "true" }, - "src": "1754:23:19", + "src": "1758:23:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2187, + "id": 2146, "nodeType": "ExpressionStatement", - "src": "1754:23:19" + "src": "1758:23:19" } ] }, @@ -1493,19 +1493,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2157, + "id": 2116, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2154, + "id": 2113, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2151, - "src": "1526:1:19", + "referencedDeclaration": 2110, + "src": "1530:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1517,18 +1517,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2155, + "id": 2114, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "1530:8:19", + "referencedDeclaration": 2086, + "src": "1534:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2156, + "id": 2115, "isConstant": false, "isLValue": false, "isPure": false, @@ -1536,31 +1536,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1530:15:19", + "src": "1534:15:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1526:19:19", + "src": "1530:19:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2189, + "id": 2148, "initializationExpression": { "assignments": [ - 2151 + 2110 ], "declarations": [ { "constant": false, - "id": 2151, + "id": 2110, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2199, - "src": "1511:9:19", + "scope": 2158, + "src": "1515:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1568,10 +1568,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2150, + "id": 2109, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1511:7:19", + "src": "1515:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1581,18 +1581,18 @@ "visibility": "internal" } ], - "id": 2153, + "id": 2112, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2152, + "id": 2111, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1523:1:19", + "src": "1527:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1601,12 +1601,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1511:13:19" + "src": "1515:13:19" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2159, + "id": 2118, "isConstant": false, "isLValue": false, "isPure": false, @@ -1614,15 +1614,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1547:3:19", + "src": "1551:3:19", "subExpression": { "argumentTypes": null, - "id": 2158, + "id": 2117, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2151, - "src": "1547:1:19", + "referencedDeclaration": 2110, + "src": "1551:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1633,29 +1633,29 @@ "typeString": "uint256" } }, - "id": 2160, + "id": 2119, "nodeType": "ExpressionStatement", - "src": "1547:3:19" + "src": "1551:3:19" }, "nodeType": "ForStatement", - "src": "1506:282:19" + "src": "1510:282:19" }, { "expression": { "argumentTypes": null, - "id": 2192, + "id": 2151, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2190, + "id": 2149, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2098, - "src": "1797:7:19", + "referencedDeclaration": 2057, + "src": "1801:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" @@ -1665,77 +1665,77 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2191, + "id": 2150, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "1807:8:19", + "referencedDeclaration": 2086, + "src": "1811:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "src": "1797:18:19", + "src": "1801:18:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2193, + "id": 2152, "nodeType": "ExpressionStatement", - "src": "1797:18:19" + "src": "1801:18:19" }, { "expression": { "argumentTypes": null, - "id": 2196, + "id": 2155, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2194, + "id": 2153, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2095, - "src": "1825:9:19", + "referencedDeclaration": 2054, + "src": "1829:9:19", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2195, + "id": 2154, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "1837:10:19", + "referencedDeclaration": 2088, + "src": "1841:10:19", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "1825:22:19", + "src": "1829:22:19", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2197, + "id": 2156, "nodeType": "ExpressionStatement", - "src": "1825:22:19" + "src": "1829:22:19" } ] }, "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": 2199, + "id": 2158, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1743,16 +1743,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2130, + "id": 2089, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2127, + "id": 2086, "name": "_friends", "nodeType": "VariableDeclaration", - "scope": 2199, - "src": "1231:18:19", + "scope": 2158, + "src": "1233:18:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1761,19 +1761,19 @@ }, "typeName": { "baseType": { - "id": 2125, + "id": 2084, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1231:7:19", + "src": "1233:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2126, + "id": 2085, "length": null, "nodeType": "ArrayTypeName", - "src": "1231:9:19", + "src": "1233:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -1784,51 +1784,51 @@ }, { "constant": false, - "id": 2129, + "id": 2088, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 2199, - "src": "1251:16:19", + "scope": 2158, + "src": "1253:18:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 2128, - "name": "uint8", + "id": 2087, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1251:5:19", + "src": "1253:7:19", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "1230:38:19" + "src": "1232:40:19" }, "payable": false, "returnParameters": { - "id": 2131, + "id": 2090, "nodeType": "ParameterList", "parameters": [], - "src": "1288:0:19" + "src": "1292:0:19" }, - "scope": 2344, - "src": "1216:638:19", + "scope": 2303, + "src": "1218:640:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2223, + "id": 2182, "nodeType": "Block", - "src": "2051:126:19", + "src": "2055:126:19", "statements": [ { "expression": { @@ -1836,7 +1836,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2210, + "id": 2169, "isConstant": false, "isLValue": false, "isPure": false, @@ -1844,31 +1844,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2069:21:19", + "src": "2073:21:19", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2207, + "id": 2166, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2106, - "src": "2070:10:19", + "referencedDeclaration": 2065, + "src": "2074:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2209, + "id": 2168, "indexExpression": { "argumentTypes": null, - "id": 2208, + "id": 2167, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "2081:8:19", + "referencedDeclaration": 2160, + "src": "2085:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1879,7 +1879,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2070:20:19", + "src": "2074:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1893,14 +1893,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2211, + "id": 2170, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2092:27:19", + "src": "2096:27:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", @@ -1920,21 +1920,21 @@ "typeString": "literal_string \"Recovery already executed\"" } ], - "id": 2206, + "id": 2165, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "2061:7:19", + "referencedDeclaration": 2663, + "src": "2065:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2212, + "id": 2171, "isConstant": false, "isLValue": false, "isPure": false, @@ -1942,20 +1942,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2061:59:19", + "src": "2065:59:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2213, + "id": 2172, "nodeType": "ExpressionStatement", - "src": "2061:59:19" + "src": "2065:59:19" }, { "expression": { "argumentTypes": null, - "id": 2221, + "id": 2180, "isConstant": false, "isLValue": false, "isPure": false, @@ -1966,26 +1966,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2214, + "id": 2173, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2112, - "src": "2130:11:19", + "referencedDeclaration": 2071, + "src": "2134:11:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 2218, + "id": 2177, "indexExpression": { "argumentTypes": null, - "id": 2215, + "id": 2174, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "2142:8:19", + "referencedDeclaration": 2160, + "src": "2146:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1996,29 +1996,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2130:21:19", + "src": "2134:21:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2219, + "id": 2178, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2216, + "id": 2175, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2700, - "src": "2152:3:19", + "referencedDeclaration": 2659, + "src": "2156:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2217, + "id": 2176, "isConstant": false, "isLValue": false, "isPure": false, @@ -2026,7 +2026,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2152:10:19", + "src": "2156:10:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2037,7 +2037,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2130:33:19", + "src": "2134:33:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2048,14 +2048,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2220, + "id": 2179, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2166:4:19", + "src": "2170:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2063,57 +2063,57 @@ }, "value": "true" }, - "src": "2130:40:19", + "src": "2134:40:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2222, + "id": 2181, "nodeType": "ExpressionStatement", - "src": "2130:40:19" + "src": "2134:40:19" } ] }, "documentation": "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash.", - "id": 2224, + "id": 2183, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2204, + "id": 2163, "modifierName": { "argumentTypes": null, - "id": 2203, + "id": 2162, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, - "src": "2036:10:19", + "referencedDeclaration": 2083, + "src": "2040:10:19", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2036:10:19" + "src": "2040:10:19" } ], "name": "confirmTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 2202, + "id": 2161, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2201, + "id": 2160, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2224, - "src": "1995:16:19", + "scope": 2183, + "src": "1999:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2121,10 +2121,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2200, + "id": 2159, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1995:7:19", + "src": "1999:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2134,39 +2134,39 @@ "visibility": "internal" } ], - "src": "1994:18:19" + "src": "1998:18:19" }, "payable": false, "returnParameters": { - "id": 2205, + "id": 2164, "nodeType": "ParameterList", "parameters": [], - "src": "2051:0:19" + "src": "2055:0:19" }, - "scope": 2344, - "src": "1967:210:19", + "scope": 2303, + "src": "1971:210:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2287, + "id": 2246, "nodeType": "Block", - "src": "2626:509:19", + "src": "2630:509:19", "statements": [ { "assignments": [ - 2236 + 2195 ], "declarations": [ { "constant": false, - "id": 2236, + "id": 2195, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2288, - "src": "2636:17:19", + "scope": 2247, + "src": "2640:17:19", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -2174,10 +2174,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2235, + "id": 2194, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2636:5:19", + "src": "2640:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2187,21 +2187,21 @@ "visibility": "internal" } ], - "id": 2244, + "id": 2203, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "737761704f776e657228616464726573732c616464726573732c6164647265737329", - "id": 2239, + "id": 2198, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2680:36:19", + "src": "2684:36:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", @@ -2211,12 +2211,12 @@ }, { "argumentTypes": null, - "id": 2240, + "id": 2199, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2226, - "src": "2718:9:19", + "referencedDeclaration": 2185, + "src": "2722:9:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2224,12 +2224,12 @@ }, { "argumentTypes": null, - "id": 2241, + "id": 2200, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2228, - "src": "2729:8:19", + "referencedDeclaration": 2187, + "src": "2733:8:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2237,12 +2237,12 @@ }, { "argumentTypes": null, - "id": 2242, + "id": 2201, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2230, - "src": "2739:8:19", + "referencedDeclaration": 2189, + "src": "2743:8:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2270,18 +2270,18 @@ ], "expression": { "argumentTypes": null, - "id": 2237, + "id": 2196, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2687, - "src": "2656:3:19", + "referencedDeclaration": 2646, + "src": "2660:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 2238, + "id": 2197, "isConstant": false, "isLValue": false, "isPure": true, @@ -2289,13 +2289,13 @@ "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2656:23:19", + "src": "2660:23:19", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 2243, + "id": 2202, "isConstant": false, "isLValue": false, "isPure": false, @@ -2303,27 +2303,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2656:92:19", + "src": "2660:92:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2636:112:19" + "src": "2640:112:19" }, { "assignments": [ - 2246 + 2205 ], "declarations": [ { "constant": false, - "id": 2246, + "id": 2205, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2288, - "src": "2758:16:19", + "scope": 2247, + "src": "2762:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2331,10 +2331,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2245, + "id": 2204, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2758:7:19", + "src": "2762:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2344,18 +2344,18 @@ "visibility": "internal" } ], - "id": 2250, + "id": 2209, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2248, + "id": 2207, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "2789:4:19", + "referencedDeclaration": 2195, + "src": "2793:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2369,18 +2369,18 @@ "typeString": "bytes memory" } ], - "id": 2247, + "id": 2206, "name": "getDataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2343, - "src": "2777:11:19", + "referencedDeclaration": 2302, + "src": "2781:11:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2249, + "id": 2208, "isConstant": false, "isLValue": false, "isPure": false, @@ -2388,14 +2388,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2777:17:19", + "src": "2781:17:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2758:36:19" + "src": "2762:36:19" }, { "expression": { @@ -2403,7 +2403,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2255, + "id": 2214, "isConstant": false, "isLValue": false, "isPure": false, @@ -2411,31 +2411,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2812:21:19", + "src": "2816:21:19", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2252, + "id": 2211, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2106, - "src": "2813:10:19", + "referencedDeclaration": 2065, + "src": "2817:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2254, + "id": 2213, "indexExpression": { "argumentTypes": null, - "id": 2253, + "id": 2212, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2246, - "src": "2824:8:19", + "referencedDeclaration": 2205, + "src": "2828:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2446,7 +2446,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2813:20:19", + "src": "2817:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2460,14 +2460,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2256, + "id": 2215, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2835:27:19", + "src": "2839:27:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", @@ -2487,21 +2487,21 @@ "typeString": "literal_string \"Recovery already executed\"" } ], - "id": 2251, + "id": 2210, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "2804:7:19", + "referencedDeclaration": 2663, + "src": "2808:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2257, + "id": 2216, "isConstant": false, "isLValue": false, "isPure": false, @@ -2509,15 +2509,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2804:59:19", + "src": "2808:59:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2258, + "id": 2217, "nodeType": "ExpressionStatement", - "src": "2804:59:19" + "src": "2808:59:19" }, { "expression": { @@ -2528,12 +2528,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2261, + "id": 2220, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2246, - "src": "2910:8:19", + "referencedDeclaration": 2205, + "src": "2914:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2547,18 +2547,18 @@ "typeString": "bytes32" } ], - "id": 2260, + "id": 2219, "name": "isConfirmedByRequiredFriends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2331, - "src": "2881:28:19", + "referencedDeclaration": 2290, + "src": "2885:28:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 2262, + "id": 2221, "isConstant": false, "isLValue": false, "isPure": false, @@ -2566,7 +2566,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2881:38:19", + "src": "2885:38:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2575,14 +2575,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 2263, + "id": 2222, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2921:39:19", + "src": "2925:39:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8", @@ -2602,21 +2602,21 @@ "typeString": "literal_string \"Recovery has not enough confirmations\"" } ], - "id": 2259, + "id": 2218, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "2873:7:19", + "referencedDeclaration": 2663, + "src": "2877:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2264, + "id": 2223, "isConstant": false, "isLValue": false, "isPure": false, @@ -2624,20 +2624,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2873:88:19", + "src": "2877:88:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2265, + "id": 2224, "nodeType": "ExpressionStatement", - "src": "2873:88:19" + "src": "2877:88:19" }, { "expression": { "argumentTypes": null, - "id": 2270, + "id": 2229, "isConstant": false, "isLValue": false, "isPure": false, @@ -2646,26 +2646,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2266, + "id": 2225, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2106, - "src": "2971:10:19", + "referencedDeclaration": 2065, + "src": "2975:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2268, + "id": 2227, "indexExpression": { "argumentTypes": null, - "id": 2267, + "id": 2226, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2246, - "src": "2982:8:19", + "referencedDeclaration": 2205, + "src": "2986:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2676,7 +2676,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2971:20:19", + "src": "2975:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2687,14 +2687,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2269, + "id": 2228, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2994:4:19", + "src": "2998:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -2702,15 +2702,15 @@ }, "value": "true" }, - "src": "2971:27:19", + "src": "2975:27:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2271, + "id": 2230, "nodeType": "ExpressionStatement", - "src": "2971:27:19" + "src": "2975:27:19" }, { "expression": { @@ -2724,12 +2724,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2276, + "id": 2235, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 697, - "src": "3058:7:19", + "src": "3062:7:19", "typeDescriptions": { "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" @@ -2743,20 +2743,20 @@ "typeString": "contract ModuleManager" } ], - "id": 2275, + "id": 2234, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3050:7:19", + "src": "3054:7:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2277, + "id": 2236, "isConstant": false, "isLValue": false, "isPure": false, @@ -2764,7 +2764,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3050:16:19", + "src": "3054:16:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2773,14 +2773,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2278, + "id": 2237, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3068:1:19", + "src": "3072:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2790,12 +2790,12 @@ }, { "argumentTypes": null, - "id": 2279, + "id": 2238, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "3071:4:19", + "referencedDeclaration": 2195, + "src": "3075:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2807,18 +2807,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2280, + "id": 2239, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 30, - "src": "3077:4:19", + "src": "3081:4:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", "typeString": "type(contract Enum)" } }, - "id": 2281, + "id": 2240, "isConstant": false, "isLValue": false, "isPure": false, @@ -2826,13 +2826,13 @@ "memberName": "Operation", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "3077:14:19", + "src": "3081:14:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2282, + "id": 2241, "isConstant": false, "isLValue": false, "isPure": true, @@ -2840,7 +2840,7 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3077:19:19", + "src": "3081:19:19", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -2868,18 +2868,18 @@ ], "expression": { "argumentTypes": null, - "id": 2273, + "id": 2232, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 697, - "src": "3016:7:19", + "src": "3020:7:19", "typeDescriptions": { "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } }, - "id": 2274, + "id": 2233, "isConstant": false, "isLValue": false, "isPure": false, @@ -2887,13 +2887,13 @@ "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", "referencedDeclaration": 930, - "src": "3016:33:19", + "src": "3020:33:19", "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": 2283, + "id": 2242, "isConstant": false, "isLValue": false, "isPure": false, @@ -2901,7 +2901,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3016:81:19", + "src": "3020:81:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -2910,14 +2910,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207265636f76657279", - "id": 2284, + "id": 2243, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3099:28:19", + "src": "3103:28:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1", @@ -2937,21 +2937,21 @@ "typeString": "literal_string \"Could not execute recovery\"" } ], - "id": 2272, + "id": 2231, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "3008:7:19", + "referencedDeclaration": 2663, + "src": "3012:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2285, + "id": 2244, "isConstant": false, "isLValue": false, "isPure": false, @@ -2959,57 +2959,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3008:120:19", + "src": "3012:120:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2286, + "id": 2245, "nodeType": "ExpressionStatement", - "src": "3008:120:19" + "src": "3012:120:19" } ] }, "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": 2288, + "id": 2247, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2233, + "id": 2192, "modifierName": { "argumentTypes": null, - "id": 2232, + "id": 2191, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, - "src": "2611:10:19", + "referencedDeclaration": 2083, + "src": "2615:10:19", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2611:10:19" + "src": "2615:10:19" } ], "name": "recoverAccess", "nodeType": "FunctionDefinition", "parameters": { - "id": 2231, + "id": 2190, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2226, + "id": 2185, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 2288, - "src": "2533:17:19", + "scope": 2247, + "src": "2537:17:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3017,10 +3017,10 @@ "typeString": "address" }, "typeName": { - "id": 2225, + "id": 2184, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2533:7:19", + "src": "2537:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3031,11 +3031,11 @@ }, { "constant": false, - "id": 2228, + "id": 2187, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 2288, - "src": "2552:16:19", + "scope": 2247, + "src": "2556:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3043,10 +3043,10 @@ "typeString": "address" }, "typeName": { - "id": 2227, + "id": 2186, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2552:7:19", + "src": "2556:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3057,11 +3057,11 @@ }, { "constant": false, - "id": 2230, + "id": 2189, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 2288, - "src": "2570:16:19", + "scope": 2247, + "src": "2574:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3069,10 +3069,10 @@ "typeString": "address" }, "typeName": { - "id": 2229, + "id": 2188, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2570:7:19", + "src": "2574:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3082,37 +3082,37 @@ "visibility": "internal" } ], - "src": "2532:55:19" + "src": "2536:55:19" }, "payable": false, "returnParameters": { - "id": 2234, + "id": 2193, "nodeType": "ParameterList", "parameters": [], - "src": "2626:0:19" + "src": "2630:0:19" }, - "scope": 2344, - "src": "2510:625:19", + "scope": 2303, + "src": "2514:625:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2330, + "id": 2289, "nodeType": "Block", - "src": "3407:294:19", + "src": "3411:294:19", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 2296, + "id": 2255, "name": "confirmationCount", "nodeType": "VariableDeclaration", - "scope": 2331, - "src": "3417:25:19", + "scope": 2290, + "src": "3421:25:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3120,10 +3120,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2295, + "id": 2254, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3417:7:19", + "src": "3421:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3133,16 +3133,16 @@ "visibility": "internal" } ], - "id": 2297, + "id": 2256, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3417:25:19" + "src": "3421:25:19" }, { "body": { - "id": 2326, + "id": 2285, "nodeType": "Block", - "src": "3497:176:19", + "src": "3501:176:19", "statements": [ { "condition": { @@ -3151,26 +3151,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2309, + "id": 2268, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2112, - "src": "3515:11:19", + "referencedDeclaration": 2071, + "src": "3519:11:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 2311, + "id": 2270, "indexExpression": { "argumentTypes": null, - "id": 2310, + "id": 2269, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2290, - "src": "3527:8:19", + "referencedDeclaration": 2249, + "src": "3531:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3181,37 +3181,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3515:21:19", + "src": "3519:21:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2315, + "id": 2274, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2312, + "id": 2271, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2098, - "src": "3537:7:19", + "referencedDeclaration": 2057, + "src": "3541:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2314, + "id": 2273, "indexExpression": { "argumentTypes": null, - "id": 2313, + "id": 2272, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, - "src": "3545:1:19", + "referencedDeclaration": 2258, + "src": "3549:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3222,7 +3222,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3537:10:19", + "src": "3541:10:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3233,20 +3233,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3515:33:19", + "src": "3519:33:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2319, + "id": 2278, "nodeType": "IfStatement", - "src": "3511:74:19", + "src": "3515:74:19", "trueBody": { "expression": { "argumentTypes": null, - "id": 2317, + "id": 2276, "isConstant": false, "isLValue": false, "isPure": false, @@ -3254,15 +3254,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3566:19:19", + "src": "3570:19:19", "subExpression": { "argumentTypes": null, - "id": 2316, + "id": 2275, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2296, - "src": "3566:17:19", + "referencedDeclaration": 2255, + "src": "3570:17:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3273,9 +3273,9 @@ "typeString": "uint256" } }, - "id": 2318, + "id": 2277, "nodeType": "ExpressionStatement", - "src": "3566:19:19" + "src": "3570:19:19" } }, { @@ -3285,19 +3285,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2322, + "id": 2281, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2320, + "id": 2279, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2296, - "src": "3603:17:19", + "referencedDeclaration": 2255, + "src": "3607:17:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3307,39 +3307,39 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2321, + "id": 2280, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2095, - "src": "3624:9:19", + "referencedDeclaration": 2054, + "src": "3628:9:19", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "3603:30:19", + "src": "3607:30:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2325, + "id": 2284, "nodeType": "IfStatement", - "src": "3599:63:19", + "src": "3603:63:19", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2323, + "id": 2282, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3658:4:19", + "src": "3662:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3347,10 +3347,10 @@ }, "value": "true" }, - "functionReturnParameters": 2294, - "id": 2324, + "functionReturnParameters": 2253, + "id": 2283, "nodeType": "Return", - "src": "3651:11:19" + "src": "3655:11:19" } } ] @@ -3361,19 +3361,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2305, + "id": 2264, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2302, + "id": 2261, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, - "src": "3472:1:19", + "referencedDeclaration": 2258, + "src": "3476:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3385,18 +3385,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2303, + "id": 2262, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2098, - "src": "3476:7:19", + "referencedDeclaration": 2057, + "src": "3480:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2304, + "id": 2263, "isConstant": false, "isLValue": true, "isPure": false, @@ -3404,31 +3404,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3476:14:19", + "src": "3480:14:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3472:18:19", + "src": "3476:18:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2327, + "id": 2286, "initializationExpression": { "assignments": [ - 2299 + 2258 ], "declarations": [ { "constant": false, - "id": 2299, + "id": 2258, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2331, - "src": "3457:9:19", + "scope": 2290, + "src": "3461:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3436,10 +3436,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2298, + "id": 2257, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3457:7:19", + "src": "3461:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3449,18 +3449,18 @@ "visibility": "internal" } ], - "id": 2301, + "id": 2260, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2300, + "id": 2259, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3469:1:19", + "src": "3473:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3469,12 +3469,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3457:13:19" + "src": "3461:13:19" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2307, + "id": 2266, "isConstant": false, "isLValue": false, "isPure": false, @@ -3482,15 +3482,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3492:3:19", + "src": "3496:3:19", "subExpression": { "argumentTypes": null, - "id": 2306, + "id": 2265, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, - "src": "3492:1:19", + "referencedDeclaration": 2258, + "src": "3496:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3501,25 +3501,25 @@ "typeString": "uint256" } }, - "id": 2308, + "id": 2267, "nodeType": "ExpressionStatement", - "src": "3492:3:19" + "src": "3496:3:19" }, "nodeType": "ForStatement", - "src": "3452:221:19" + "src": "3456:221:19" }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2328, + "id": 2287, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3689:5:19", + "src": "3693:5:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -3527,15 +3527,15 @@ }, "value": "false" }, - "functionReturnParameters": 2294, - "id": 2329, + "functionReturnParameters": 2253, + "id": 2288, "nodeType": "Return", - "src": "3682:12:19" + "src": "3686:12:19" } ] }, "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param dataHash Data hash.\n @return Confirmation status.", - "id": 2331, + "id": 2290, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3543,16 +3543,16 @@ "name": "isConfirmedByRequiredFriends", "nodeType": "FunctionDefinition", "parameters": { - "id": 2291, + "id": 2250, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2290, + "id": 2249, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2331, - "src": "3334:16:19", + "scope": 2290, + "src": "3338:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3560,10 +3560,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2289, + "id": 2248, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3334:7:19", + "src": "3338:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3573,20 +3573,20 @@ "visibility": "internal" } ], - "src": "3333:18:19" + "src": "3337:18:19" }, "payable": false, "returnParameters": { - "id": 2294, + "id": 2253, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2293, + "id": 2252, "name": "", "nodeType": "VariableDeclaration", - "scope": 2331, - "src": "3397:4:19", + "scope": 2290, + "src": "3401:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3594,10 +3594,10 @@ "typeString": "bool" }, "typeName": { - "id": 2292, + "id": 2251, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3397:4:19", + "src": "3401:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3607,19 +3607,19 @@ "visibility": "internal" } ], - "src": "3396:6:19" + "src": "3400:6:19" }, - "scope": 2344, - "src": "3296:405:19", + "scope": 2303, + "src": "3300:405:19", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2342, + "id": 2301, "nodeType": "Block", - "src": "3921:39:19", + "src": "3925:39:19", "statements": [ { "expression": { @@ -3627,12 +3627,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2339, + "id": 2298, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "3948:4:19", + "referencedDeclaration": 2292, + "src": "3952:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3646,18 +3646,18 @@ "typeString": "bytes memory" } ], - "id": 2338, + "id": 2297, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2694, - "src": "3938:9:19", + "referencedDeclaration": 2653, + "src": "3942:9:19", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 2340, + "id": 2299, "isConstant": false, "isLValue": false, "isPure": false, @@ -3665,21 +3665,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3938:15:19", + "src": "3942:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 2337, - "id": 2341, + "functionReturnParameters": 2296, + "id": 2300, "nodeType": "Return", - "src": "3931:22:19" + "src": "3935:22:19" } ] }, "documentation": "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash.", - "id": 2343, + "id": 2302, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -3687,16 +3687,16 @@ "name": "getDataHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2334, + "id": 2293, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2333, + "id": 2292, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2343, - "src": "3851:10:19", + "scope": 2302, + "src": "3855:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3704,10 +3704,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2332, + "id": 2291, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3851:5:19", + "src": "3855:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3717,20 +3717,20 @@ "visibility": "internal" } ], - "src": "3850:12:19" + "src": "3854:12:19" }, "payable": false, "returnParameters": { - "id": 2337, + "id": 2296, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2336, + "id": 2295, "name": "", "nodeType": "VariableDeclaration", - "scope": 2343, - "src": "3908:7:19", + "scope": 2302, + "src": "3912:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3738,10 +3738,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2335, + "id": 2294, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3908:7:19", + "src": "3912:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3751,33 +3751,33 @@ "visibility": "internal" } ], - "src": "3907:9:19" + "src": "3911:9:19" }, - "scope": 2344, - "src": "3830:130:19", + "scope": 2303, + "src": "3834:130:19", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 2345, - "src": "306:3656:19" + "scope": 2304, + "src": "306:3660:19" } ], - "src": "0:3963:19" + "src": "0:3967:19" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/SocialRecoveryModule.sol", "exportedSymbols": { "SocialRecoveryModule": [ - 2344 + 2303 ] }, - "id": 2345, + "id": 2304, "nodeType": "SourceUnit", "nodes": [ { - "id": 2081, + "id": 2040, "literals": [ "solidity", "0.4", @@ -3789,9 +3789,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 2082, + "id": 2041, "nodeType": "ImportDirective", - "scope": 2345, + "scope": 2304, "sourceUnit": 31, "src": "24:21:19", "symbolAliases": [], @@ -3800,9 +3800,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 2083, + "id": 2042, "nodeType": "ImportDirective", - "scope": 2345, + "scope": 2304, "sourceUnit": 733, "src": "46:23:19", "symbolAliases": [], @@ -3811,9 +3811,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 2084, + "id": 2043, "nodeType": "ImportDirective", - "scope": 2345, + "scope": 2304, "sourceUnit": 1104, "src": "70:30:19", "symbolAliases": [], @@ -3822,10 +3822,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 2085, + "id": 2044, "nodeType": "ImportDirective", - "scope": 2345, - "sourceUnit": 1514, + "scope": 2304, + "sourceUnit": 1512, "src": "101:29:19", "symbolAliases": [], "unitAlias": "" @@ -3836,7 +3836,7 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2086, + "id": 2045, "name": "Module", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 732, @@ -3846,7 +3846,7 @@ "typeString": "contract Module" } }, - "id": 2087, + "id": 2046, "nodeType": "InheritanceSpecifier", "src": "339:6:19" } @@ -3854,27 +3854,27 @@ "contractDependencies": [ 632, 732, - 1663 + 1688 ], "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": 2344, + "id": 2303, "linearizedBaseContracts": [ - 2344, + 2303, 732, 632, - 1663 + 1688 ], "name": "SocialRecoveryModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2090, + "id": 2049, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2344, + "scope": 2303, "src": "353:54:19", "stateVariable": true, "storageLocation": "default", @@ -3883,7 +3883,7 @@ "typeString": "string" }, "typeName": { - "id": 2088, + "id": 2047, "name": "string", "nodeType": "ElementaryTypeName", "src": "353:6:19", @@ -3895,7 +3895,7 @@ "value": { "argumentTypes": null, "hexValue": "536f6369616c205265636f76657279204d6f64756c65", - "id": 2089, + "id": 2048, "isConstant": false, "isLValue": false, "isPure": true, @@ -3914,10 +3914,10 @@ }, { "constant": true, - "id": 2093, + "id": 2052, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2344, + "scope": 2303, "src": "413:40:19", "stateVariable": true, "storageLocation": "default", @@ -3926,7 +3926,7 @@ "typeString": "string" }, "typeName": { - "id": 2091, + "id": 2050, "name": "string", "nodeType": "ElementaryTypeName", "src": "413:6:19", @@ -3938,7 +3938,7 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 2092, + "id": 2051, "isConstant": false, "isLValue": false, "isPure": true, @@ -3957,25 +3957,25 @@ }, { "constant": false, - "id": 2095, + "id": 2054, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 2344, - "src": "460:22:19", + "scope": 2303, + "src": "460:24:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 2094, - "name": "uint8", + "id": 2053, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "460:5:19", + "src": "460:7:19", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, @@ -3983,11 +3983,11 @@ }, { "constant": false, - "id": 2098, + "id": 2057, "name": "friends", "nodeType": "VariableDeclaration", - "scope": 2344, - "src": "488:24:19", + "scope": 2303, + "src": "490:24:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3996,19 +3996,19 @@ }, "typeName": { "baseType": { - "id": 2096, + "id": 2055, "name": "address", "nodeType": "ElementaryTypeName", - "src": "488:7:19", + "src": "490:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2097, + "id": 2056, "length": null, "nodeType": "ArrayTypeName", - "src": "488:9:19", + "src": "490:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -4019,11 +4019,11 @@ }, { "constant": false, - "id": 2102, + "id": 2061, "name": "isFriend", "nodeType": "VariableDeclaration", - "scope": 2344, - "src": "583:41:19", + "scope": 2303, + "src": "585:41:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4031,28 +4031,28 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 2101, + "id": 2060, "keyType": { - "id": 2099, + "id": 2058, "name": "address", "nodeType": "ElementaryTypeName", - "src": "592:7:19", + "src": "594:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "583:25:19", + "src": "585:25:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2100, + "id": 2059, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "603:4:19", + "src": "605:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4064,11 +4064,11 @@ }, { "constant": false, - "id": 2106, + "id": 2065, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 2344, - "src": "692:43:19", + "scope": 2303, + "src": "694:43:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4076,28 +4076,28 @@ "typeString": "mapping(bytes32 => bool)" }, "typeName": { - "id": 2105, + "id": 2064, "keyType": { - "id": 2103, + "id": 2062, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "701:7:19", + "src": "703:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "692:25:19", + "src": "694:25:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" }, "valueType": { - "id": 2104, + "id": 2063, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "712:4:19", + "src": "714:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4109,11 +4109,11 @@ }, { "constant": false, - "id": 2112, + "id": 2071, "name": "isConfirmed", "nodeType": "VariableDeclaration", - "scope": 2344, - "src": "827:65:19", + "scope": 2303, + "src": "829:65:19", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -4121,46 +4121,46 @@ "typeString": "mapping(bytes32 => mapping(address => bool))" }, "typeName": { - "id": 2111, + "id": 2070, "keyType": { - "id": 2107, + "id": 2066, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "836:7:19", + "src": "838:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "827:46:19", + "src": "829:46:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" }, "valueType": { - "id": 2110, + "id": 2069, "keyType": { - "id": 2108, + "id": 2067, "name": "address", "nodeType": "ElementaryTypeName", - "src": "856:7:19", + "src": "858:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", - "src": "847:25:19", + "src": "849:25:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2109, + "id": 2068, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "867:4:19", + "src": "869:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4173,9 +4173,9 @@ }, { "body": { - "id": 2123, + "id": 2082, "nodeType": "Block", - "src": "921:98:19", + "src": "923:98:19", "statements": [ { "expression": { @@ -4185,34 +4185,34 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2115, + "id": 2074, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2102, - "src": "939:8:19", + "referencedDeclaration": 2061, + "src": "941:8:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2118, + "id": 2077, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2116, + "id": 2075, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2700, - "src": "948:3:19", + "referencedDeclaration": 2659, + "src": "950:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2117, + "id": 2076, "isConstant": false, "isLValue": false, "isPure": false, @@ -4220,7 +4220,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "948:10:19", + "src": "950:10:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4231,7 +4231,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "939:20:19", + "src": "941:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4240,14 +4240,14 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c6564206279206120667269656e64", - "id": 2119, + "id": 2078, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "961:39:19", + "src": "963:39:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b1b9fb59ab33eb5ed22c2a9ea6a84e946973f30df026a85494e13c73883cce0a", @@ -4267,21 +4267,21 @@ "typeString": "literal_string \"Method can only be called by a friend\"" } ], - "id": 2114, + "id": 2073, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "931:7:19", + "referencedDeclaration": 2663, + "src": "933:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2120, + "id": 2079, "isConstant": false, "isLValue": false, "isPure": false, @@ -4289,41 +4289,41 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "931:70:19", + "src": "933:70:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2121, + "id": 2080, "nodeType": "ExpressionStatement", - "src": "931:70:19" + "src": "933:70:19" }, { - "id": 2122, + "id": 2081, "nodeType": "PlaceholderStatement", - "src": "1011:1:19" + "src": "1013:1:19" } ] }, "documentation": null, - "id": 2124, + "id": 2083, "name": "onlyFriend", "nodeType": "ModifierDefinition", "parameters": { - "id": 2113, + "id": 2072, "nodeType": "ParameterList", "parameters": [], - "src": "918:2:19" + "src": "920:2:19" }, - "src": "899:120:19", + "src": "901:120:19", "visibility": "internal" }, { "body": { - "id": 2198, + "id": 2157, "nodeType": "Block", - "src": "1288:566:19", + "src": "1292:566:19", "statements": [ { "expression": { @@ -4335,22 +4335,22 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2136, + "id": 2095, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2133, + "id": 2092, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "1306:10:19", + "referencedDeclaration": 2088, + "src": "1310:10:19", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", @@ -4359,18 +4359,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2134, + "id": 2093, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "1320:8:19", + "referencedDeclaration": 2086, + "src": "1324:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2135, + "id": 2094, "isConstant": false, "isLValue": false, "isPure": false, @@ -4378,13 +4378,13 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1320:15:19", + "src": "1324:15:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1306:29:19", + "src": "1310:29:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4393,14 +4393,14 @@ { "argumentTypes": null, "hexValue": "5468726573686f6c642063616e6e6f742065786365656420667269656e647320636f756e74", - "id": 2137, + "id": 2096, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1337:39:19", + "src": "1341:39:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_8268a65eab991df6bae5d0e671467a9ef945396e4d495dc52153cedea41ef257", @@ -4420,21 +4420,21 @@ "typeString": "literal_string \"Threshold cannot exceed friends count\"" } ], - "id": 2132, + "id": 2091, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "1298:7:19", + "referencedDeclaration": 2663, + "src": "1302:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2138, + "id": 2097, "isConstant": false, "isLValue": false, "isPure": false, @@ -4442,15 +4442,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1298:79:19", + "src": "1302:79:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2139, + "id": 2098, "nodeType": "ExpressionStatement", - "src": "1298:79:19" + "src": "1302:79:19" }, { "expression": { @@ -4459,25 +4459,25 @@ { "argumentTypes": null, "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, - "id": 2143, + "id": 2102, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2141, + "id": 2100, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "1395:10:19", + "referencedDeclaration": 2088, + "src": "1399:10:19", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "BinaryOperation", @@ -4485,14 +4485,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "32", - "id": 2142, + "id": 2101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1409:1:19", + "src": "1413:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_2_by_1", @@ -4500,7 +4500,7 @@ }, "value": "2" }, - "src": "1395:15:19", + "src": "1399:15:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4509,14 +4509,14 @@ { "argumentTypes": null, "hexValue": "4174206c65617374203220667269656e6473207265717569726564", - "id": 2144, + "id": 2103, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1412:29:19", + "src": "1416:29:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_2dca24eb5124987015b2480219c9ac2baf747f0e8ae6537e9852d3e3b2773773", @@ -4536,21 +4536,21 @@ "typeString": "literal_string \"At least 2 friends required\"" } ], - "id": 2140, + "id": 2099, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "1387:7:19", + "referencedDeclaration": 2663, + "src": "1391:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2145, + "id": 2104, "isConstant": false, "isLValue": false, "isPure": false, @@ -4558,15 +4558,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1387:55:19", + "src": "1391:55:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2146, + "id": 2105, "nodeType": "ExpressionStatement", - "src": "1387:55:19" + "src": "1391:55:19" }, { "expression": { @@ -4574,18 +4574,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2147, + "id": 2106, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 731, - "src": "1452:10:19", + "src": "1456:10:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 2148, + "id": 2107, "isConstant": false, "isLValue": false, "isPure": false, @@ -4593,34 +4593,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1452:12:19", + "src": "1456:12:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2149, + "id": 2108, "nodeType": "ExpressionStatement", - "src": "1452:12:19" + "src": "1456:12:19" }, { "body": { - "id": 2188, + "id": 2147, "nodeType": "Block", - "src": "1552:236:19", + "src": "1556:236:19", "statements": [ { "assignments": [ - 2162 + 2121 ], "declarations": [ { "constant": false, - "id": 2162, + "id": 2121, "name": "friend", "nodeType": "VariableDeclaration", - "scope": 2199, - "src": "1566:14:19", + "scope": 2158, + "src": "1570:14:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4628,10 +4628,10 @@ "typeString": "address" }, "typeName": { - "id": 2161, + "id": 2120, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1566:7:19", + "src": "1570:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4641,31 +4641,31 @@ "visibility": "internal" } ], - "id": 2166, + "id": 2125, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2163, + "id": 2122, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "1583:8:19", + "referencedDeclaration": 2086, + "src": "1587:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2165, + "id": 2124, "indexExpression": { "argumentTypes": null, - "id": 2164, + "id": 2123, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2151, - "src": "1592:1:19", + "referencedDeclaration": 2110, + "src": "1596:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4676,14 +4676,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1583:11:19", + "src": "1587:11:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1566:28:19" + "src": "1570:28:19" }, { "expression": { @@ -4695,19 +4695,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2170, + "id": 2129, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2168, + "id": 2127, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2162, - "src": "1616:6:19", + "referencedDeclaration": 2121, + "src": "1620:6:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4718,14 +4718,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2169, + "id": 2128, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1626:1:19", + "src": "1630:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4733,7 +4733,7 @@ }, "value": "0" }, - "src": "1616:11:19", + "src": "1620:11:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4742,14 +4742,14 @@ { "argumentTypes": null, "hexValue": "496e76616c696420667269656e6420616464726573732070726f7669646564", - "id": 2171, + "id": 2130, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1629:33:19", + "src": "1633:33:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_5d50911068dfec2dd53f3e08d7dec23b50affd69b91cf3e5d1e699c56bca7a55", @@ -4769,21 +4769,21 @@ "typeString": "literal_string \"Invalid friend address provided\"" } ], - "id": 2167, + "id": 2126, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "1608:7:19", + "referencedDeclaration": 2663, + "src": "1612:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2172, + "id": 2131, "isConstant": false, "isLValue": false, "isPure": false, @@ -4791,15 +4791,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1608:55:19", + "src": "1612:55:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2173, + "id": 2132, "nodeType": "ExpressionStatement", - "src": "1608:55:19" + "src": "1612:55:19" }, { "expression": { @@ -4807,7 +4807,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2178, + "id": 2137, "isConstant": false, "isLValue": false, "isPure": false, @@ -4815,31 +4815,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "1685:17:19", + "src": "1689:17:19", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2175, + "id": 2134, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2102, - "src": "1686:8:19", + "referencedDeclaration": 2061, + "src": "1690:8:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2177, + "id": 2136, "indexExpression": { "argumentTypes": null, - "id": 2176, + "id": 2135, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2162, - "src": "1695:6:19", + "referencedDeclaration": 2121, + "src": "1699:6:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4850,7 +4850,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1686:16:19", + "src": "1690:16:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4864,14 +4864,14 @@ { "argumentTypes": null, "hexValue": "4475706c696361746520667269656e6420616464726573732070726f7669646564", - "id": 2179, + "id": 2138, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1704:35:19", + "src": "1708:35:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_78a0468a6f4bfa8018f886880a93f836f50f407cd02c2e42c43779f87d3af4d3", @@ -4891,21 +4891,21 @@ "typeString": "literal_string \"Duplicate friend address provided\"" } ], - "id": 2174, + "id": 2133, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "1677:7:19", + "referencedDeclaration": 2663, + "src": "1681:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2180, + "id": 2139, "isConstant": false, "isLValue": false, "isPure": false, @@ -4913,20 +4913,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1677:63:19", + "src": "1681:63:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2181, + "id": 2140, "nodeType": "ExpressionStatement", - "src": "1677:63:19" + "src": "1681:63:19" }, { "expression": { "argumentTypes": null, - "id": 2186, + "id": 2145, "isConstant": false, "isLValue": false, "isPure": false, @@ -4935,26 +4935,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2182, + "id": 2141, "name": "isFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2102, - "src": "1754:8:19", + "referencedDeclaration": 2061, + "src": "1758:8:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2184, + "id": 2143, "indexExpression": { "argumentTypes": null, - "id": 2183, + "id": 2142, "name": "friend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2162, - "src": "1763:6:19", + "referencedDeclaration": 2121, + "src": "1767:6:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4965,7 +4965,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1754:16:19", + "src": "1758:16:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4976,14 +4976,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2185, + "id": 2144, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "1773:4:19", + "src": "1777:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -4991,15 +4991,15 @@ }, "value": "true" }, - "src": "1754:23:19", + "src": "1758:23:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2187, + "id": 2146, "nodeType": "ExpressionStatement", - "src": "1754:23:19" + "src": "1758:23:19" } ] }, @@ -5009,19 +5009,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2157, + "id": 2116, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2154, + "id": 2113, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2151, - "src": "1526:1:19", + "referencedDeclaration": 2110, + "src": "1530:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5033,18 +5033,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2155, + "id": 2114, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "1530:8:19", + "referencedDeclaration": 2086, + "src": "1534:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2156, + "id": 2115, "isConstant": false, "isLValue": false, "isPure": false, @@ -5052,31 +5052,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "1530:15:19", + "src": "1534:15:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "1526:19:19", + "src": "1530:19:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2189, + "id": 2148, "initializationExpression": { "assignments": [ - 2151 + 2110 ], "declarations": [ { "constant": false, - "id": 2151, + "id": 2110, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2199, - "src": "1511:9:19", + "scope": 2158, + "src": "1515:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5084,10 +5084,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2150, + "id": 2109, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1511:7:19", + "src": "1515:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5097,18 +5097,18 @@ "visibility": "internal" } ], - "id": 2153, + "id": 2112, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2152, + "id": 2111, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1523:1:19", + "src": "1527:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -5117,12 +5117,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "1511:13:19" + "src": "1515:13:19" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2159, + "id": 2118, "isConstant": false, "isLValue": false, "isPure": false, @@ -5130,15 +5130,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "1547:3:19", + "src": "1551:3:19", "subExpression": { "argumentTypes": null, - "id": 2158, + "id": 2117, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2151, - "src": "1547:1:19", + "referencedDeclaration": 2110, + "src": "1551:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5149,29 +5149,29 @@ "typeString": "uint256" } }, - "id": 2160, + "id": 2119, "nodeType": "ExpressionStatement", - "src": "1547:3:19" + "src": "1551:3:19" }, "nodeType": "ForStatement", - "src": "1506:282:19" + "src": "1510:282:19" }, { "expression": { "argumentTypes": null, - "id": 2192, + "id": 2151, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2190, + "id": 2149, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2098, - "src": "1797:7:19", + "referencedDeclaration": 2057, + "src": "1801:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" @@ -5181,77 +5181,77 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2191, + "id": 2150, "name": "_friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2127, - "src": "1807:8:19", + "referencedDeclaration": 2086, + "src": "1811:8:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "src": "1797:18:19", + "src": "1801:18:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2193, + "id": 2152, "nodeType": "ExpressionStatement", - "src": "1797:18:19" + "src": "1801:18:19" }, { "expression": { "argumentTypes": null, - "id": 2196, + "id": 2155, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 2194, + "id": 2153, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2095, - "src": "1825:9:19", + "referencedDeclaration": 2054, + "src": "1829:9:19", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 2195, + "id": 2154, "name": "_threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2129, - "src": "1837:10:19", + "referencedDeclaration": 2088, + "src": "1841:10:19", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "1825:22:19", + "src": "1829:22:19", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "id": 2197, + "id": 2156, "nodeType": "ExpressionStatement", - "src": "1825:22:19" + "src": "1829:22:19" } ] }, "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": 2199, + "id": 2158, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -5259,16 +5259,16 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2130, + "id": 2089, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2127, + "id": 2086, "name": "_friends", "nodeType": "VariableDeclaration", - "scope": 2199, - "src": "1231:18:19", + "scope": 2158, + "src": "1233:18:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5277,19 +5277,19 @@ }, "typeName": { "baseType": { - "id": 2125, + "id": 2084, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1231:7:19", + "src": "1233:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2126, + "id": 2085, "length": null, "nodeType": "ArrayTypeName", - "src": "1231:9:19", + "src": "1233:9:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -5300,51 +5300,51 @@ }, { "constant": false, - "id": 2129, + "id": 2088, "name": "_threshold", "nodeType": "VariableDeclaration", - "scope": 2199, - "src": "1251:16:19", + "scope": 2158, + "src": "1253:18:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 2128, - "name": "uint8", + "id": 2087, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1251:5:19", + "src": "1253:7:19", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "src": "1230:38:19" + "src": "1232:40:19" }, "payable": false, "returnParameters": { - "id": 2131, + "id": 2090, "nodeType": "ParameterList", "parameters": [], - "src": "1288:0:19" + "src": "1292:0:19" }, - "scope": 2344, - "src": "1216:638:19", + "scope": 2303, + "src": "1218:640:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2223, + "id": 2182, "nodeType": "Block", - "src": "2051:126:19", + "src": "2055:126:19", "statements": [ { "expression": { @@ -5352,7 +5352,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2210, + "id": 2169, "isConstant": false, "isLValue": false, "isPure": false, @@ -5360,31 +5360,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2069:21:19", + "src": "2073:21:19", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2207, + "id": 2166, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2106, - "src": "2070:10:19", + "referencedDeclaration": 2065, + "src": "2074:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2209, + "id": 2168, "indexExpression": { "argumentTypes": null, - "id": 2208, + "id": 2167, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "2081:8:19", + "referencedDeclaration": 2160, + "src": "2085:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5395,7 +5395,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2070:20:19", + "src": "2074:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5409,14 +5409,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2211, + "id": 2170, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2092:27:19", + "src": "2096:27:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", @@ -5436,21 +5436,21 @@ "typeString": "literal_string \"Recovery already executed\"" } ], - "id": 2206, + "id": 2165, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "2061:7:19", + "referencedDeclaration": 2663, + "src": "2065:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2212, + "id": 2171, "isConstant": false, "isLValue": false, "isPure": false, @@ -5458,20 +5458,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2061:59:19", + "src": "2065:59:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2213, + "id": 2172, "nodeType": "ExpressionStatement", - "src": "2061:59:19" + "src": "2065:59:19" }, { "expression": { "argumentTypes": null, - "id": 2221, + "id": 2180, "isConstant": false, "isLValue": false, "isPure": false, @@ -5482,26 +5482,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2214, + "id": 2173, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2112, - "src": "2130:11:19", + "referencedDeclaration": 2071, + "src": "2134:11:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 2218, + "id": 2177, "indexExpression": { "argumentTypes": null, - "id": 2215, + "id": 2174, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "2142:8:19", + "referencedDeclaration": 2160, + "src": "2146:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5512,29 +5512,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2130:21:19", + "src": "2134:21:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2219, + "id": 2178, "indexExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2216, + "id": 2175, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2700, - "src": "2152:3:19", + "referencedDeclaration": 2659, + "src": "2156:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2217, + "id": 2176, "isConstant": false, "isLValue": false, "isPure": false, @@ -5542,7 +5542,7 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2152:10:19", + "src": "2156:10:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5553,7 +5553,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2130:33:19", + "src": "2134:33:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5564,14 +5564,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2220, + "id": 2179, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2166:4:19", + "src": "2170:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -5579,57 +5579,57 @@ }, "value": "true" }, - "src": "2130:40:19", + "src": "2134:40:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2222, + "id": 2181, "nodeType": "ExpressionStatement", - "src": "2130:40:19" + "src": "2134:40:19" } ] }, "documentation": "@dev Allows a friend to confirm a Safe transaction.\n @param dataHash Safe transaction hash.", - "id": 2224, + "id": 2183, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2204, + "id": 2163, "modifierName": { "argumentTypes": null, - "id": 2203, + "id": 2162, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, - "src": "2036:10:19", + "referencedDeclaration": 2083, + "src": "2040:10:19", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2036:10:19" + "src": "2040:10:19" } ], "name": "confirmTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 2202, + "id": 2161, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2201, + "id": 2160, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2224, - "src": "1995:16:19", + "scope": 2183, + "src": "1999:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5637,10 +5637,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2200, + "id": 2159, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1995:7:19", + "src": "1999:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5650,39 +5650,39 @@ "visibility": "internal" } ], - "src": "1994:18:19" + "src": "1998:18:19" }, "payable": false, "returnParameters": { - "id": 2205, + "id": 2164, "nodeType": "ParameterList", "parameters": [], - "src": "2051:0:19" + "src": "2055:0:19" }, - "scope": 2344, - "src": "1967:210:19", + "scope": 2303, + "src": "1971:210:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2287, + "id": 2246, "nodeType": "Block", - "src": "2626:509:19", + "src": "2630:509:19", "statements": [ { "assignments": [ - 2236 + 2195 ], "declarations": [ { "constant": false, - "id": 2236, + "id": 2195, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2288, - "src": "2636:17:19", + "scope": 2247, + "src": "2640:17:19", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -5690,10 +5690,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2235, + "id": 2194, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2636:5:19", + "src": "2640:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5703,21 +5703,21 @@ "visibility": "internal" } ], - "id": 2244, + "id": 2203, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "737761704f776e657228616464726573732c616464726573732c6164647265737329", - "id": 2239, + "id": 2198, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2680:36:19", + "src": "2684:36:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e318b52b9bee2870ac7ee0af86866eb2e8f9569b34de6028eb487e7983ba6df8", @@ -5727,12 +5727,12 @@ }, { "argumentTypes": null, - "id": 2240, + "id": 2199, "name": "prevOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2226, - "src": "2718:9:19", + "referencedDeclaration": 2185, + "src": "2722:9:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5740,12 +5740,12 @@ }, { "argumentTypes": null, - "id": 2241, + "id": 2200, "name": "oldOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2228, - "src": "2729:8:19", + "referencedDeclaration": 2187, + "src": "2733:8:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5753,12 +5753,12 @@ }, { "argumentTypes": null, - "id": 2242, + "id": 2201, "name": "newOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2230, - "src": "2739:8:19", + "referencedDeclaration": 2189, + "src": "2743:8:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5786,18 +5786,18 @@ ], "expression": { "argumentTypes": null, - "id": 2237, + "id": 2196, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2687, - "src": "2656:3:19", + "referencedDeclaration": 2646, + "src": "2660:3:19", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 2238, + "id": 2197, "isConstant": false, "isLValue": false, "isPure": true, @@ -5805,13 +5805,13 @@ "memberName": "encodeWithSignature", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "2656:23:19", + "src": "2660:23:19", "typeDescriptions": { "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", "typeString": "function (string memory) pure returns (bytes memory)" } }, - "id": 2243, + "id": 2202, "isConstant": false, "isLValue": false, "isPure": false, @@ -5819,27 +5819,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2656:92:19", + "src": "2660:92:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "2636:112:19" + "src": "2640:112:19" }, { "assignments": [ - 2246 + 2205 ], "declarations": [ { "constant": false, - "id": 2246, + "id": 2205, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2288, - "src": "2758:16:19", + "scope": 2247, + "src": "2762:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5847,10 +5847,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2245, + "id": 2204, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2758:7:19", + "src": "2762:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5860,18 +5860,18 @@ "visibility": "internal" } ], - "id": 2250, + "id": 2209, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 2248, + "id": 2207, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "2789:4:19", + "referencedDeclaration": 2195, + "src": "2793:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5885,18 +5885,18 @@ "typeString": "bytes memory" } ], - "id": 2247, + "id": 2206, "name": "getDataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2343, - "src": "2777:11:19", + "referencedDeclaration": 2302, + "src": "2781:11:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2249, + "id": 2208, "isConstant": false, "isLValue": false, "isPure": false, @@ -5904,14 +5904,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2777:17:19", + "src": "2781:17:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "2758:36:19" + "src": "2762:36:19" }, { "expression": { @@ -5919,7 +5919,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2255, + "id": 2214, "isConstant": false, "isLValue": false, "isPure": false, @@ -5927,31 +5927,31 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "2812:21:19", + "src": "2816:21:19", "subExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2252, + "id": 2211, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2106, - "src": "2813:10:19", + "referencedDeclaration": 2065, + "src": "2817:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2254, + "id": 2213, "indexExpression": { "argumentTypes": null, - "id": 2253, + "id": 2212, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2246, - "src": "2824:8:19", + "referencedDeclaration": 2205, + "src": "2828:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5962,7 +5962,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "2813:20:19", + "src": "2817:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -5976,14 +5976,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920616c7265616479206578656375746564", - "id": 2256, + "id": 2215, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2835:27:19", + "src": "2839:27:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_c2f19da1619c37eda5c6f4f3abcc466ec30065da4e2523bb6c81cc850dedac38", @@ -6003,21 +6003,21 @@ "typeString": "literal_string \"Recovery already executed\"" } ], - "id": 2251, + "id": 2210, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "2804:7:19", + "referencedDeclaration": 2663, + "src": "2808:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2257, + "id": 2216, "isConstant": false, "isLValue": false, "isPure": false, @@ -6025,15 +6025,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2804:59:19", + "src": "2808:59:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2258, + "id": 2217, "nodeType": "ExpressionStatement", - "src": "2804:59:19" + "src": "2808:59:19" }, { "expression": { @@ -6044,12 +6044,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2261, + "id": 2220, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2246, - "src": "2910:8:19", + "referencedDeclaration": 2205, + "src": "2914:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6063,18 +6063,18 @@ "typeString": "bytes32" } ], - "id": 2260, + "id": 2219, "name": "isConfirmedByRequiredFriends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2331, - "src": "2881:28:19", + "referencedDeclaration": 2290, + "src": "2885:28:19", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", "typeString": "function (bytes32) view returns (bool)" } }, - "id": 2262, + "id": 2221, "isConstant": false, "isLValue": false, "isPure": false, @@ -6082,7 +6082,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2881:38:19", + "src": "2885:38:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6091,14 +6091,14 @@ { "argumentTypes": null, "hexValue": "5265636f7665727920686173206e6f7420656e6f75676820636f6e6669726d6174696f6e73", - "id": 2263, + "id": 2222, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2921:39:19", + "src": "2925:39:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_cb12b81371f920ba15a762526f9a95cbe925aecb372a64dbeac8ce5c02e0c0e8", @@ -6118,21 +6118,21 @@ "typeString": "literal_string \"Recovery has not enough confirmations\"" } ], - "id": 2259, + "id": 2218, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "2873:7:19", + "referencedDeclaration": 2663, + "src": "2877:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2264, + "id": 2223, "isConstant": false, "isLValue": false, "isPure": false, @@ -6140,20 +6140,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2873:88:19", + "src": "2877:88:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2265, + "id": 2224, "nodeType": "ExpressionStatement", - "src": "2873:88:19" + "src": "2877:88:19" }, { "expression": { "argumentTypes": null, - "id": 2270, + "id": 2229, "isConstant": false, "isLValue": false, "isPure": false, @@ -6162,26 +6162,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2266, + "id": 2225, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2106, - "src": "2971:10:19", + "referencedDeclaration": 2065, + "src": "2975:10:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", "typeString": "mapping(bytes32 => bool)" } }, - "id": 2268, + "id": 2227, "indexExpression": { "argumentTypes": null, - "id": 2267, + "id": 2226, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2246, - "src": "2982:8:19", + "referencedDeclaration": 2205, + "src": "2986:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6192,7 +6192,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "2971:20:19", + "src": "2975:20:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6203,14 +6203,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2269, + "id": 2228, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "2994:4:19", + "src": "2998:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6218,15 +6218,15 @@ }, "value": "true" }, - "src": "2971:27:19", + "src": "2975:27:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2271, + "id": 2230, "nodeType": "ExpressionStatement", - "src": "2971:27:19" + "src": "2975:27:19" }, { "expression": { @@ -6240,12 +6240,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2276, + "id": 2235, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 697, - "src": "3058:7:19", + "src": "3062:7:19", "typeDescriptions": { "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" @@ -6259,20 +6259,20 @@ "typeString": "contract ModuleManager" } ], - "id": 2275, + "id": 2234, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3050:7:19", + "src": "3054:7:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 2277, + "id": 2236, "isConstant": false, "isLValue": false, "isPure": false, @@ -6280,7 +6280,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3050:16:19", + "src": "3054:16:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6289,14 +6289,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 2278, + "id": 2237, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3068:1:19", + "src": "3072:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6306,12 +6306,12 @@ }, { "argumentTypes": null, - "id": 2279, + "id": 2238, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "3071:4:19", + "referencedDeclaration": 2195, + "src": "3075:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -6323,18 +6323,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2280, + "id": 2239, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 30, - "src": "3077:4:19", + "src": "3081:4:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_Enum_$30_$", "typeString": "type(contract Enum)" } }, - "id": 2281, + "id": 2240, "isConstant": false, "isLValue": false, "isPure": false, @@ -6342,13 +6342,13 @@ "memberName": "Operation", "nodeType": "MemberAccess", "referencedDeclaration": 29, - "src": "3077:14:19", + "src": "3081:14:19", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_Operation_$29_$", "typeString": "type(enum Enum.Operation)" } }, - "id": 2282, + "id": 2241, "isConstant": false, "isLValue": false, "isPure": true, @@ -6356,7 +6356,7 @@ "memberName": "Call", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3077:19:19", + "src": "3081:19:19", "typeDescriptions": { "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" @@ -6384,18 +6384,18 @@ ], "expression": { "argumentTypes": null, - "id": 2273, + "id": 2232, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 697, - "src": "3016:7:19", + "src": "3020:7:19", "typeDescriptions": { "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } }, - "id": 2274, + "id": 2233, "isConstant": false, "isLValue": false, "isPure": false, @@ -6403,13 +6403,13 @@ "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", "referencedDeclaration": 930, - "src": "3016:33:19", + "src": "3020:33:19", "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": 2283, + "id": 2242, "isConstant": false, "isLValue": false, "isPure": false, @@ -6417,7 +6417,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3016:81:19", + "src": "3020:81:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -6426,14 +6426,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207265636f76657279", - "id": 2284, + "id": 2243, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "3099:28:19", + "src": "3103:28:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3515587d60c3ee9920dfa4bee22a25e99aacbb3cec35d7cbe6c839f5b9ffdff1", @@ -6453,21 +6453,21 @@ "typeString": "literal_string \"Could not execute recovery\"" } ], - "id": 2272, + "id": 2231, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, - "src": "3008:7:19", + "referencedDeclaration": 2663, + "src": "3012:7:19", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2285, + "id": 2244, "isConstant": false, "isLValue": false, "isPure": false, @@ -6475,57 +6475,57 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3008:120:19", + "src": "3012:120:19", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2286, + "id": 2245, "nodeType": "ExpressionStatement", - "src": "3008:120:19" + "src": "3012:120:19" } ] }, "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": 2288, + "id": 2247, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2233, + "id": 2192, "modifierName": { "argumentTypes": null, - "id": 2232, + "id": 2191, "name": "onlyFriend", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, - "src": "2611:10:19", + "referencedDeclaration": 2083, + "src": "2615:10:19", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "2611:10:19" + "src": "2615:10:19" } ], "name": "recoverAccess", "nodeType": "FunctionDefinition", "parameters": { - "id": 2231, + "id": 2190, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2226, + "id": 2185, "name": "prevOwner", "nodeType": "VariableDeclaration", - "scope": 2288, - "src": "2533:17:19", + "scope": 2247, + "src": "2537:17:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6533,10 +6533,10 @@ "typeString": "address" }, "typeName": { - "id": 2225, + "id": 2184, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2533:7:19", + "src": "2537:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6547,11 +6547,11 @@ }, { "constant": false, - "id": 2228, + "id": 2187, "name": "oldOwner", "nodeType": "VariableDeclaration", - "scope": 2288, - "src": "2552:16:19", + "scope": 2247, + "src": "2556:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6559,10 +6559,10 @@ "typeString": "address" }, "typeName": { - "id": 2227, + "id": 2186, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2552:7:19", + "src": "2556:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6573,11 +6573,11 @@ }, { "constant": false, - "id": 2230, + "id": 2189, "name": "newOwner", "nodeType": "VariableDeclaration", - "scope": 2288, - "src": "2570:16:19", + "scope": 2247, + "src": "2574:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6585,10 +6585,10 @@ "typeString": "address" }, "typeName": { - "id": 2229, + "id": 2188, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2570:7:19", + "src": "2574:7:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6598,37 +6598,37 @@ "visibility": "internal" } ], - "src": "2532:55:19" + "src": "2536:55:19" }, "payable": false, "returnParameters": { - "id": 2234, + "id": 2193, "nodeType": "ParameterList", "parameters": [], - "src": "2626:0:19" + "src": "2630:0:19" }, - "scope": 2344, - "src": "2510:625:19", + "scope": 2303, + "src": "2514:625:19", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2330, + "id": 2289, "nodeType": "Block", - "src": "3407:294:19", + "src": "3411:294:19", "statements": [ { "assignments": [], "declarations": [ { "constant": false, - "id": 2296, + "id": 2255, "name": "confirmationCount", "nodeType": "VariableDeclaration", - "scope": 2331, - "src": "3417:25:19", + "scope": 2290, + "src": "3421:25:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6636,10 +6636,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2295, + "id": 2254, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3417:7:19", + "src": "3421:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6649,16 +6649,16 @@ "visibility": "internal" } ], - "id": 2297, + "id": 2256, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "3417:25:19" + "src": "3421:25:19" }, { "body": { - "id": 2326, + "id": 2285, "nodeType": "Block", - "src": "3497:176:19", + "src": "3501:176:19", "statements": [ { "condition": { @@ -6667,26 +6667,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2309, + "id": 2268, "name": "isConfirmed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2112, - "src": "3515:11:19", + "referencedDeclaration": 2071, + "src": "3519:11:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(bytes32 => mapping(address => bool))" } }, - "id": 2311, + "id": 2270, "indexExpression": { "argumentTypes": null, - "id": 2310, + "id": 2269, "name": "dataHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2290, - "src": "3527:8:19", + "referencedDeclaration": 2249, + "src": "3531:8:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -6697,37 +6697,37 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3515:21:19", + "src": "3519:21:19", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2315, + "id": 2274, "indexExpression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2312, + "id": 2271, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2098, - "src": "3537:7:19", + "referencedDeclaration": 2057, + "src": "3541:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2314, + "id": 2273, "indexExpression": { "argumentTypes": null, - "id": 2313, + "id": 2272, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, - "src": "3545:1:19", + "referencedDeclaration": 2258, + "src": "3549:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6738,7 +6738,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3537:10:19", + "src": "3541:10:19", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -6749,20 +6749,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3515:33:19", + "src": "3519:33:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2319, + "id": 2278, "nodeType": "IfStatement", - "src": "3511:74:19", + "src": "3515:74:19", "trueBody": { "expression": { "argumentTypes": null, - "id": 2317, + "id": 2276, "isConstant": false, "isLValue": false, "isPure": false, @@ -6770,15 +6770,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3566:19:19", + "src": "3570:19:19", "subExpression": { "argumentTypes": null, - "id": 2316, + "id": 2275, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2296, - "src": "3566:17:19", + "referencedDeclaration": 2255, + "src": "3570:17:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6789,9 +6789,9 @@ "typeString": "uint256" } }, - "id": 2318, + "id": 2277, "nodeType": "ExpressionStatement", - "src": "3566:19:19" + "src": "3570:19:19" } }, { @@ -6801,19 +6801,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2322, + "id": 2281, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2320, + "id": 2279, "name": "confirmationCount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2296, - "src": "3603:17:19", + "referencedDeclaration": 2255, + "src": "3607:17:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6823,39 +6823,39 @@ "operator": "==", "rightExpression": { "argumentTypes": null, - "id": 2321, + "id": 2280, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2095, - "src": "3624:9:19", + "referencedDeclaration": 2054, + "src": "3628:9:19", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "3603:30:19", + "src": "3607:30:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": null, - "id": 2325, + "id": 2284, "nodeType": "IfStatement", - "src": "3599:63:19", + "src": "3603:63:19", "trueBody": { "expression": { "argumentTypes": null, "hexValue": "74727565", - "id": 2323, + "id": 2282, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3658:4:19", + "src": "3662:4:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -6863,10 +6863,10 @@ }, "value": "true" }, - "functionReturnParameters": 2294, - "id": 2324, + "functionReturnParameters": 2253, + "id": 2283, "nodeType": "Return", - "src": "3651:11:19" + "src": "3655:11:19" } } ] @@ -6877,19 +6877,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2305, + "id": 2264, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2302, + "id": 2261, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, - "src": "3472:1:19", + "referencedDeclaration": 2258, + "src": "3476:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6901,18 +6901,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2303, + "id": 2262, "name": "friends", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2098, - "src": "3476:7:19", + "referencedDeclaration": 2057, + "src": "3480:7:19", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage", "typeString": "address[] storage ref" } }, - "id": 2304, + "id": 2263, "isConstant": false, "isLValue": true, "isPure": false, @@ -6920,31 +6920,31 @@ "memberName": "length", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3476:14:19", + "src": "3480:14:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "3472:18:19", + "src": "3476:18:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2327, + "id": 2286, "initializationExpression": { "assignments": [ - 2299 + 2258 ], "declarations": [ { "constant": false, - "id": 2299, + "id": 2258, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2331, - "src": "3457:9:19", + "scope": 2290, + "src": "3461:9:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -6952,10 +6952,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2298, + "id": 2257, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3457:7:19", + "src": "3461:7:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -6965,18 +6965,18 @@ "visibility": "internal" } ], - "id": 2301, + "id": 2260, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2300, + "id": 2259, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3469:1:19", + "src": "3473:1:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -6985,12 +6985,12 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "3457:13:19" + "src": "3461:13:19" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 2307, + "id": 2266, "isConstant": false, "isLValue": false, "isPure": false, @@ -6998,15 +6998,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "3492:3:19", + "src": "3496:3:19", "subExpression": { "argumentTypes": null, - "id": 2306, + "id": 2265, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2299, - "src": "3492:1:19", + "referencedDeclaration": 2258, + "src": "3496:1:19", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7017,25 +7017,25 @@ "typeString": "uint256" } }, - "id": 2308, + "id": 2267, "nodeType": "ExpressionStatement", - "src": "3492:3:19" + "src": "3496:3:19" }, "nodeType": "ForStatement", - "src": "3452:221:19" + "src": "3456:221:19" }, { "expression": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2328, + "id": 2287, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "3689:5:19", + "src": "3693:5:19", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -7043,15 +7043,15 @@ }, "value": "false" }, - "functionReturnParameters": 2294, - "id": 2329, + "functionReturnParameters": 2253, + "id": 2288, "nodeType": "Return", - "src": "3682:12:19" + "src": "3686:12:19" } ] }, "documentation": "@dev Returns if Safe transaction is a valid owner replacement transaction.\n @param dataHash Data hash.\n @return Confirmation status.", - "id": 2331, + "id": 2290, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7059,16 +7059,16 @@ "name": "isConfirmedByRequiredFriends", "nodeType": "FunctionDefinition", "parameters": { - "id": 2291, + "id": 2250, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2290, + "id": 2249, "name": "dataHash", "nodeType": "VariableDeclaration", - "scope": 2331, - "src": "3334:16:19", + "scope": 2290, + "src": "3338:16:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7076,10 +7076,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2289, + "id": 2248, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3334:7:19", + "src": "3338:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7089,20 +7089,20 @@ "visibility": "internal" } ], - "src": "3333:18:19" + "src": "3337:18:19" }, "payable": false, "returnParameters": { - "id": 2294, + "id": 2253, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2293, + "id": 2252, "name": "", "nodeType": "VariableDeclaration", - "scope": 2331, - "src": "3397:4:19", + "scope": 2290, + "src": "3401:4:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7110,10 +7110,10 @@ "typeString": "bool" }, "typeName": { - "id": 2292, + "id": 2251, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3397:4:19", + "src": "3401:4:19", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -7123,19 +7123,19 @@ "visibility": "internal" } ], - "src": "3396:6:19" + "src": "3400:6:19" }, - "scope": 2344, - "src": "3296:405:19", + "scope": 2303, + "src": "3300:405:19", "stateMutability": "view", "superFunction": null, "visibility": "public" }, { "body": { - "id": 2342, + "id": 2301, "nodeType": "Block", - "src": "3921:39:19", + "src": "3925:39:19", "statements": [ { "expression": { @@ -7143,12 +7143,12 @@ "arguments": [ { "argumentTypes": null, - "id": 2339, + "id": 2298, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "3948:4:19", + "referencedDeclaration": 2292, + "src": "3952:4:19", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -7162,18 +7162,18 @@ "typeString": "bytes memory" } ], - "id": 2338, + "id": 2297, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2694, - "src": "3938:9:19", + "referencedDeclaration": 2653, + "src": "3942:9:19", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 2340, + "id": 2299, "isConstant": false, "isLValue": false, "isPure": false, @@ -7181,21 +7181,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3938:15:19", + "src": "3942:15:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 2337, - "id": 2341, + "functionReturnParameters": 2296, + "id": 2300, "nodeType": "Return", - "src": "3931:22:19" + "src": "3935:22:19" } ] }, "documentation": "@dev Returns hash of data encoding owner replacement.\n @param data Data payload.\n @return Data hash.", - "id": 2343, + "id": 2302, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -7203,16 +7203,16 @@ "name": "getDataHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 2334, + "id": 2293, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2333, + "id": 2292, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2343, - "src": "3851:10:19", + "scope": 2302, + "src": "3855:10:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7220,10 +7220,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2332, + "id": 2291, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3851:5:19", + "src": "3855:5:19", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -7233,20 +7233,20 @@ "visibility": "internal" } ], - "src": "3850:12:19" + "src": "3854:12:19" }, "payable": false, "returnParameters": { - "id": 2337, + "id": 2296, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2336, + "id": 2295, "name": "", "nodeType": "VariableDeclaration", - "scope": 2343, - "src": "3908:7:19", + "scope": 2302, + "src": "3912:7:19", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7254,10 +7254,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2335, + "id": 2294, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3908:7:19", + "src": "3912:7:19", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -7267,105 +7267,33 @@ "visibility": "internal" } ], - "src": "3907:9:19" + "src": "3911:9:19" }, - "scope": 2344, - "src": "3830:130:19", + "scope": 2303, + "src": "3834:130:19", "stateMutability": "pure", "superFunction": null, "visibility": "public" } ], - "scope": 2345, - "src": "306:3656:19" + "scope": 2304, + "src": "306:3660:19" } ], - "src": "0:3963:19" + "src": "0:3967:19" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { - "4": { + "1530197641790": { "events": {}, "links": {}, - "address": "0xf6dc186ef518dfecabd521bf747b36954b07e623", - "transactionHash": "0x9ced12659bf1ee6ea54926b65432e20ce5170a5b2ba2f5a803f082683225169b" - }, - "1529327661534": { - "events": {}, - "links": {}, - "address": "0x2678fd36b9e8cda27b473a3ff6f79749644ffd0a", - "transactionHash": "0x03a01cb2c328fbcab8f5d76e3553275e442885ade5c41dff35fea15e6647c72c" - }, - "1529333415702": { - "events": {}, - "links": {}, - "address": "0x9d6575ea466550e050f4c08eff7075ab099db8f6", - "transactionHash": "0x8c0dc99f8f345ac15f129ef0e98e60a7fde3975cf8b77fbb9f0b1e75eae34c30" - }, - "1529652204341": { - "events": {}, - "links": {}, - "address": "0xdfcdce812f5f001cdd35506bfb01cc02e31ae5a2", - "transactionHash": "0x6c40a3712932d0e03f4a6f0ad0f39be479bac35533935534577070e087245a52" - }, - "1529931780812": { - "events": {}, - "links": {}, - "address": "0x23cf04dd4e5e3d94088674d8321a83658462d9f2", - "transactionHash": "0x6c40a3712932d0e03f4a6f0ad0f39be479bac35533935534577070e087245a52" - }, - "1529933005377": { - "events": {}, - "links": {}, - "address": "0x3a7c93bfc909e96ffd3e79a8d651e102d84a5ae9", - "transactionHash": "0x6c40a3712932d0e03f4a6f0ad0f39be479bac35533935534577070e087245a52" - }, - "1529934931891": { - "events": {}, - "links": {}, - "address": "0x0e08848c2febd191788955b01c260b6b341b1dad", - "transactionHash": "0x6c40a3712932d0e03f4a6f0ad0f39be479bac35533935534577070e087245a52" - }, - "1529935355957": { - "events": {}, - "links": {}, - "address": "0xc8c08901117f231d20c3924647b8656d9476a6fa", - "transactionHash": "0x6c40a3712932d0e03f4a6f0ad0f39be479bac35533935534577070e087245a52" - }, - "1529936204222": { - "events": {}, - "links": {}, - "address": "0x6d61ababf5fd1a1f8aafbb38a7af644008e19fed", - "transactionHash": "0x6c40a3712932d0e03f4a6f0ad0f39be479bac35533935534577070e087245a52" - }, - "1529937280871": { - "events": {}, - "links": {}, - "address": "0x7295c1a87f51e9c1fccc6c059e388c735e7cf983", - "transactionHash": "0x6c40a3712932d0e03f4a6f0ad0f39be479bac35533935534577070e087245a52" - }, - "1529937637076": { - "events": {}, - "links": {}, - "address": "0x03bcd0582e44381a92396870f7c7a31d332f4742", - "transactionHash": "0x6c40a3712932d0e03f4a6f0ad0f39be479bac35533935534577070e087245a52" - }, - "1529937890676": { - "events": {}, - "links": {}, - "address": "0x158f301bf49a404e9f280abf7864598c4c2c6903", - "transactionHash": "0x6c40a3712932d0e03f4a6f0ad0f39be479bac35533935534577070e087245a52" - }, - "1530013596495": { - "events": {}, - "links": {}, - "address": "0xa614f42b656f6c562f8b1a161ea9d44eb1af0c2b", - "transactionHash": "0x6c40a3712932d0e03f4a6f0ad0f39be479bac35533935534577070e087245a52" + "address": "0x62403908917ce2a0d539135c41578137c63dffc6", + "transactionHash": "0x65cb3b38555f3cfabbe79c02bf417fa0d4d21040933e2ac8788528876093ce4e" } }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-26T11:47:04.149Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:58.257Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/StateChannelModule.json b/safe-contracts/build/contracts/StateChannelModule.json index 2efbac95..c1b87498 100644 --- a/safe-contracts/build/contracts/StateChannelModule.json +++ b/safe-contracts/build/contracts/StateChannelModule.json @@ -15,33 +15,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": true, - "inputs": [ - { - "name": "txHash", - "type": "bytes32" - }, - { - "name": "messageSignature", - "type": "bytes" - }, - { - "name": "pos", - "type": "uint256" - } - ], - "name": "recoverKey", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, { "constant": false, "inputs": [ @@ -70,37 +43,6 @@ "stateMutability": "view", "type": "function" }, - { - "constant": true, - "inputs": [ - { - "name": "signatures", - "type": "bytes" - }, - { - "name": "pos", - "type": "uint256" - } - ], - "name": "signatureSplit", - "outputs": [ - { - "name": "v", - "type": "uint8" - }, - { - "name": "r", - "type": "bytes32" - }, - { - "name": "s", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, { "constant": true, "inputs": [ @@ -213,62 +155,62 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611303806100206000396000f3006080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632b500041146100a9578063481c6a751461016f57806363f44b59146101c65780637de7edef14610287578063a3f4df7e146102ca578063b817dcc21461035a578063ba0bba4014610405578063e52cb36a1461041c578063f6cc15d014610461578063ffa1ad7414610551575b600080fd5b3480156100b557600080fd5b50610151600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291905050506105e1565b60405180826000191660001916815260200191505060405180910390f35b34801561017b57600080fd5b50610184610869565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101d257600080fd5b506102456004803603810190808035600019169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061088f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561029357600080fd5b506102c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610938565b005b3480156102d657600080fd5b506102df610b1b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561031f578082015181840152602081019050610304565b50505050905090810190601f16801561034c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036657600080fd5b506103cb600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050610b54565b604051808460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001935050505060405180910390f35b34801561041157600080fd5b5061041a610b83565b005b34801561042857600080fd5b5061044b6004803603810190808035600019169060200190929190505050610b8d565b6040518082815260200191505060405180910390f35b34801561046d57600080fd5b5061054f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ba5565b005b34801561055d57600080fd5b50610566610e74565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105a657808201518184015260208101905061058b565b50505050905090810190601f1680156105d35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b6020831015156107855780518252602082019150602081019050602083039250610760565b6001836020036101000a0380198251168184511680821785525050505050509050018360028111156107b357fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515610831578051825260208201915060208101905060208303925061080c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008061089f8686610b54565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015610922573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ad8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b610b8b610ead565b565b60026020528060005260406000206000915090505481565b6000610bb487878787876105e1565b9050600060026000836000191660001916815260200190815260200160002054141515610c49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b610c538183610fa0565b600160026000836000191660001916815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610d2d57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610d6d578082015181840152602081019050610d52565b50505050905090810190601f168015610d9a5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610dbc57600080fd5b505af1158015610dd0573d6000803e3d6000fd5b505050506040513d6020811015610de657600080fd5b81019080805190602001909291905050501515610e6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610f5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561103057600080fd5b505af1158015611044573d6000803e3d6000fd5b505050506040513d602081101561105a57600080fd5b81019080805190602001909291905050509050600091505b8060ff168210156112cf5761108886868461088f565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561114757600080fd5b505af115801561115b573d6000803e3d6000fd5b505050506040513d602081101561117157600080fd5b810190808051906020019092919050505015156111f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161115156112bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293508180600101925050611072565b5050505050505600a165627a7a7230582058005d7099f142b8a994a658f0fe2532539e3411fb7a3e6f71c5082fc24376d30029", - "deployedBytecode": "0x6080604052600436106100a4576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632b500041146100a9578063481c6a751461016f57806363f44b59146101c65780637de7edef14610287578063a3f4df7e146102ca578063b817dcc21461035a578063ba0bba4014610405578063e52cb36a1461041c578063f6cc15d014610461578063ffa1ad7414610551575b600080fd5b3480156100b557600080fd5b50610151600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff169060200190929190803590602001909291905050506105e1565b60405180826000191660001916815260200191505060405180910390f35b34801561017b57600080fd5b50610184610869565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101d257600080fd5b506102456004803603810190808035600019169060200190929190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091929192908035906020019092919050505061088f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561029357600080fd5b506102c8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610938565b005b3480156102d657600080fd5b506102df610b1b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561031f578082015181840152602081019050610304565b50505050905090810190601f16801561034c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561036657600080fd5b506103cb600480360381019080803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929080359060200190929190505050610b54565b604051808460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001935050505060405180910390f35b34801561041157600080fd5b5061041a610b83565b005b34801561042857600080fd5b5061044b6004803603810190808035600019169060200190929190505050610b8d565b6040518082815260200191505060405180910390f35b34801561046d57600080fd5b5061054f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050610ba5565b005b34801561055d57600080fd5b50610566610e74565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105a657808201518184015260208101905061058b565b50505050905090810190601f1680156105d35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b6020831015156107855780518252602082019150602081019050602083039250610760565b6001836020036101000a0380198251168184511680821785525050505050509050018360028111156107b357fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b602083101515610831578051825260208201915060208101905060208303925061080c565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008061089f8686610b54565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015610922573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a23576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610ad8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b60008060008360410260208101860151925060408101860151915060ff60418201870151169350509250925092565b610b8b610ead565b565b60026020528060005260406000206000915090505481565b6000610bb487878787876105e1565b9050600060026000836000191660001916815260200190815260200160002054141515610c49576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b610c538183610fa0565b600160026000836000191660001916815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610d2d57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610d6d578082015181840152602081019050610d52565b50505050905090810190601f168015610d9a5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610dbc57600080fd5b505af1158015610dd0573d6000803e3d6000fd5b505050506040513d6020811015610de657600080fd5b81019080805190602001909291905050501515610e6b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610f5d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561103057600080fd5b505af1158015611044573d6000803e3d6000fd5b505050506040513d602081101561105a57600080fd5b81019080805190602001909291905050509050600091505b8060ff168210156112cf5761108886868461088f565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561114757600080fd5b505af115801561115b573d6000803e3d6000fd5b505050506040513d602081101561117157600080fd5b810190808051906020019092919050505015156111f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161115156112bf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293508180600101925050611072565b5050505050505600a165627a7a7230582058005d7099f142b8a994a658f0fe2532539e3411fb7a3e6f71c5082fc24376d30029", - "sourceMap": "305:2840:11:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;305:2840:11;;;;;;;", - "deployedSourceMap": "305:2840:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2814:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2814:329:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:5;;;;;;;;;;;;;;;;;;;;;;;;;;;477:328:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;477:328:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;370:52:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;370:52:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;370:52:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;982:912:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;982:912:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;660:65:11;;8:9:-1;5:2;;;30:1;27;20:12;5:2;660:65:11;;;;;;566:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;566:46:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1190:634;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1190:634:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;428:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;428:40:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;428:40:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2814:329;3017:7;3079:4;3074:10;;3091:1;3086:7;;3095:4;3101:2;3105:5;3112:4;3118:9;3129:5;3057: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;;;3057:78:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3057:78:11;;;3047: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;;;3047:89:11;;;;;;;;;;;;;;;;3040:96;;2814:329;;;;;;;:::o;262:28:5:-;;;;;;;;;;;;;:::o;477:328:9:-;627:7;651;668:9;687;718:37;733:16;751:3;718:14;:37::i;:::-;706:49;;;;;;;;;;;;772:26;782:6;790:1;793;796;772:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;772:26:9;;;;;;;;765:33;;477:328;;;;;;;;:::o;626:248:4:-;359:7:5;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:4;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;370:52:11:-;;;;;;;;;;;;;;;;;;;;:::o;982:912:9:-;1082:7;1091:9;1102;1402:3;1396:4;1392:14;1464:4;1450:12;1446:23;1434:10;1430:40;1424:47;1419:52;;1529:4;1515:12;1511:23;1499:10;1495:40;1489:47;1484:52;;1873:4;1864;1850:12;1846:23;1834:10;1830:40;1824:47;1820:58;1815:63;;1358:530;;;;;;:::o;660:65:11:-;706:12;:10;:12::i;:::-;660:65::o;566:46::-;;;;;;;;;;;;;;;;;:::o;1190:634::-;1400:23;1426:53;1445:2;1449:5;1456:4;1462:9;1473:5;1426:18;:53::i;:::-;1400:79;;1528:1;1497:10;:27;1508:15;1497:27;;;;;;;;;;;;;;;;;;:32;1489:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1572:38;1582:15;1599:10;1572:9;:38::i;:::-;1703:1;1673:10;:27;1684:15;1673:27;;;;;;;;;;;;;;;;;:31;;;;1722:7;;;;;;;;;;;:33;;;1756:2;1760:5;1767:4;1773:9;1722: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;1722:61:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1722:61:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1722:61:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1722:61:11;;;;;;;;;;;;;;;;1714:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1190:634;;;;;;;:::o;428:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:5:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o;1830:706:11:-;1988:17;2028:20;2058:9;2077:15;2016:1;1988:30;;2108:7;;;;;;;;;;;2095:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2095:36:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2095:36:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2095:36:11;;;;;;;;;;;;;;;;2077:54;;2192:1;2188:5;;2183:347;2199:9;2195:13;;:1;:13;2183:347;;;2244:42;2255:15;2272:10;2284:1;2244:10;:42::i;:::-;2229:57;;2321:7;;;;;;;;;;;2308:29;;;2338:12;2308:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2308:43:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2308:43:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2308:43:11;;;;;;;;;;;;;;;;2300:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2424:9;2409:24;;:12;:24;;;2401:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2507:12;2495:24;;2210:3;;;;;;;2183:347;;;1830:706;;;;;;:::o", - "source": "pragma solidity 0.4.24;\nimport \"../Module.sol\";\nimport \"../OwnerManager.sol\";\nimport \"../SignatureValidator.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, SignatureValidator {\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 => uint256) 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 signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})\n function execTransaction(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce,\n bytes signatures\n )\n public\n {\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n require(isExecuted[transactionHash] == 0, \"Transaction already executed\");\n checkHash(transactionHash, signatures);\n // Mark as executed and execute transaction.\n isExecuted[transactionHash] = 1;\n require(manager.execTransactionFromModule(to, value, data, operation), \"Could not execute transaction\");\n }\n\n function checkHash(bytes32 transactionHash, bytes signatures)\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 = recoverKey(transactionHash, signatures, i);\n require(OwnerManager(manager).isOwner(currentOwner), \"Signature not provided by owner\");\n require(currentOwner > lastOwner, \"Signatures are not ordered by owner address\");\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", + "bytecode": "0x608060405234801561001057600080fd5b5061117e806100206000396000f30060806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632b50004114610093578063481c6a75146101595780637de7edef146101b0578063a3f4df7e146101f3578063ba0bba4014610283578063e52cb36a1461029a578063f6cc15d0146102df578063ffa1ad74146103cf575b600080fd5b34801561009f57600080fd5b5061013b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061045f565b60405180826000191660001916815260200191505060405180910390f35b34801561016557600080fd5b5061016e6106e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101bc57600080fd5b506101f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061070d565b005b3480156101ff57600080fd5b506102086108f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028f57600080fd5b50610298610929565b005b3480156102a657600080fd5b506102c96004803603810190808035600019169060200190929190505050610933565b6040518082815260200191505060405180910390f35b3480156102eb57600080fd5b506103cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061094b565b005b3480156103db57600080fd5b506103e4610c1a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610424578082015181840152602081019050610409565b50505050905090810190601f1680156104515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561060357805182526020820191506020810190506020830392506105de565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561063157fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156106af578051825260208201915060208101905060208303925061068a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610931610c53565b565b60026020528060005260406000206000915090505481565b600061095a878787878761045f565b90506000600260008360001916600019168152602001908152602001600020541415156109ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b6109f98183610d46565b600160026000836000191660001916815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ad357fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610b13578082015181840152602081019050610af8565b50505050905090810190601f168015610b405780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b505050506040513d6020811015610b8c57600080fd5b81019080805190602001909291905050501515610c11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610dd657600080fd5b505af1158015610dea573d6000803e3d6000fd5b505050506040513d6020811015610e0057600080fd5b81019080805190602001909291905050509050600091505b8082101561107257610e2b86868461107a565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610eea57600080fd5b505af1158015610efe573d6000803e3d6000fd5b505050506040513d6020811015610f1457600080fd5b81019080805190602001909291905050501515610f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293508180600101925050610e18565b505050505050565b60008060008061108a8686611123565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561110d573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a72305820d2834484d40c8ee60c472d27914d0e4d5029520c243a789fc3184ddb6e4ae9410029", + "deployedBytecode": "0x60806040526004361061008e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632b50004114610093578063481c6a75146101595780637de7edef146101b0578063a3f4df7e146101f3578063ba0bba4014610283578063e52cb36a1461029a578063f6cc15d0146102df578063ffa1ad74146103cf575b600080fd5b34801561009f57600080fd5b5061013b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff1690602001909291908035906020019092919050505061045f565b60405180826000191660001916815260200191505060405180910390f35b34801561016557600080fd5b5061016e6106e7565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101bc57600080fd5b506101f1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061070d565b005b3480156101ff57600080fd5b506102086108f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024857808201518184015260208101905061022d565b50505050905090810190601f1680156102755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028f57600080fd5b50610298610929565b005b3480156102a657600080fd5b506102c96004803603810190808035600019169060200190929190505050610933565b6040518082815260200191505060405180910390f35b3480156102eb57600080fd5b506103cd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061094b565b005b3480156103db57600080fd5b506103e4610c1a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610424578082015181840152602081019050610409565b50505050905090810190601f1680156104515780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600060197f01000000000000000000000000000000000000000000000000000000000000000260007f01000000000000000000000000000000000000000000000000000000000000000230888888888860405160200180897effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152600101887effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b60208310151561060357805182526020820191506020810190506020830392506105de565b6001836020036101000a03801982511681845116808217855250505050505090500183600281111561063157fe5b60ff167f0100000000000000000000000000000000000000000000000000000000000000028152600101828152602001985050505050505050506040516020818303038152906040526040518082805190602001908083835b6020831015156106af578051825260208201915060208101905060208303925061068a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020905095945050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156107f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff16141515156108ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6040805190810160405280601481526020017f5374617465204368616e6e656c204d6f64756c6500000000000000000000000081525081565b610931610c53565b565b60026020528060005260406000206000915090505481565b600061095a878787878761045f565b90506000600260008360001916600019168152602001908152602001600020541415156109ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f5472616e73616374696f6e20616c72656164792065786563757465640000000081525060200191505060405180910390fd5b6109f98183610d46565b600160026000836000191660001916815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a7888888886040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001836002811115610ad357fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b83811015610b13578082015181840152602081019050610af8565b50505050905090810190601f168015610b405780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610b6257600080fd5b505af1158015610b76573d6000803e3d6000fd5b505050506040513d6020811015610b8c57600080fd5b81019080805190602001909291905050501515610c11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b50505050505050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d03576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060008060009350600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663e75235b86040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b158015610dd657600080fd5b505af1158015610dea573d6000803e3d6000fd5b505050506040513d6020811015610e0057600080fd5b81019080805190602001909291905050509050600091505b8082101561107257610e2b86868461107a565b9250600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e846040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015610eea57600080fd5b505af1158015610efe573d6000803e3d6000fd5b505050506040513d6020811015610f1457600080fd5b81019080805190602001909291905050501515610f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f5369676e6174757265206e6f742070726f7669646564206279206f776e65720081525060200191505060405180910390fd5b8373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16111515611062576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f5369676e61747572657320617265206e6f74206f726465726564206279206f7781526020017f6e6572206164647265737300000000000000000000000000000000000000000081525060400191505060405180910390fd5b8293508180600101925050610e18565b505050505050565b60008060008061108a8686611123565b809350819450829550505050600187848484604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af115801561110d573d6000803e3d6000fd5b5050506020604051035193505050509392505050565b60008060008360410260208101860151925060408101860151915060ff604182018701511693505092509250925600a165627a7a72305820d2834484d40c8ee60c472d27914d0e4d5029520c243a789fc3184ddb6e4ae9410029", + "sourceMap": "305:2842:20:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;305:2842:20;;;;;;;", + "deployedSourceMap": "305:2842:20:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2816:329;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2816:329:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;370:52:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;370:52: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;370:52:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;660:65;;8:9:-1;5:2;;;30:1;27;20:12;5:2;660:65:20;;;;;;566:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;566:46:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1190:634;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1190:634:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;428:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;428: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;428:40:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2816:329;3019:7;3081:4;3076:10;;3093:1;3088:7;;3097:4;3103:2;3107:5;3114:4;3120:9;3131:5;3059: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;;;3059:78:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3059:78:20;;;3049: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;;;3049:89:20;;;;;;;;;;;;;;;;3042:96;;2816:329;;;;;;;:::o;262:28:7:-;;;;;;;;;;;;;:::o;626:248:5:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;370:52:20:-;;;;;;;;;;;;;;;;;;;;:::o;660:65::-;706:12;:10;:12::i;:::-;660:65::o;566:46::-;;;;;;;;;;;;;;;;;:::o;1190:634::-;1400:23;1426:53;1445:2;1449:5;1456:4;1462:9;1473:5;1426:18;:53::i;:::-;1400:79;;1528:1;1497:10;:27;1508:15;1497:27;;;;;;;;;;;;;;;;;;:32;1489:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1572:38;1582:15;1599:10;1572:9;:38::i;:::-;1703:1;1673:10;:27;1684:15;1673:27;;;;;;;;;;;;;;;;;:31;;;;1722:7;;;;;;;;;;;:33;;;1756:2;1760:5;1767:4;1773:9;1722: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;1722:61:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1722:61:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1722:61:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1722:61:20;;;;;;;;;;;;;;;;1714:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1190:634;;;;;;;:::o;428:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:7:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::o;1830:708:20:-;1988:17;2028:20;2058:9;2077:17;2016:1;1988:30;;2110:7;;;;;;;;;;;2097:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2097:36:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2097:36:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2097:36:20;;;;;;;;;;;;;;;;2077:56;;2194:1;2190:5;;2185:347;2201:9;2197:1;:13;2185:347;;;2246:42;2257:15;2274:10;2286:1;2246:10;:42::i;:::-;2231:57;;2323:7;;;;;;;;;;;2310:29;;;2340:12;2310:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2310:43:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2310:43:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2310:43:20;;;;;;;;;;;;;;;;2302:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2426:9;2411:24;;:12;:24;;;2403:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2509:12;2497:24;;2212:3;;;;;;;2185:347;;;1830:708;;;;;;:::o;477:330:15:-;629:7;653;670:9;689;720:37;735:16;753:3;720:14;:37::i;:::-;708:49;;;;;;;;;;;;774:26;784:6;792:1;795;798;774:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;774:26:15;;;;;;;;767:33;;477:330;;;;;;;;:::o;984:914::-;1086:7;1095:9;1106;1406:3;1400:4;1396:14;1468:4;1454:12;1450:23;1438:10;1434:40;1428:47;1423:52;;1533:4;1519:12;1515:23;1503:10;1499:40;1493:47;1488:52;;1877:4;1868;1854:12;1850:23;1838:10;1834:40;1828:47;1824:58;1819:63;;1362:530;;;;;;:::o", + "source": "pragma solidity 0.4.24;\nimport \"../Module.sol\";\nimport \"../OwnerManager.sol\";\nimport \"../SignatureValidator.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, SignatureValidator {\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 => uint256) 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 signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})\n function execTransaction(\n address to, \n uint256 value, \n bytes data, \n Enum.Operation operation, \n uint256 nonce,\n bytes signatures\n )\n public\n {\n bytes32 transactionHash = getTransactionHash(to, value, data, operation, nonce);\n require(isExecuted[transactionHash] == 0, \"Transaction already executed\");\n checkHash(transactionHash, signatures);\n // Mark as executed and execute transaction.\n isExecuted[transactionHash] = 1;\n require(manager.execTransactionFromModule(to, value, data, operation), \"Could not execute transaction\");\n }\n\n function checkHash(bytes32 transactionHash, bytes signatures)\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 uint256 threshold = OwnerManager(manager).getThreshold();\n // Validate threshold is reached.\n for (i = 0; i < threshold; i++) {\n currentOwner = recoverKey(transactionHash, signatures, i);\n require(OwnerManager(manager).isOwner(currentOwner), \"Signature not provided by owner\");\n require(currentOwner > lastOwner, \"Signatures are not ordered by owner address\");\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": [ - 1758 + 2490 ] }, - "id": 1759, + "id": 2491, "nodeType": "SourceUnit", "nodes": [ { - "id": 1573, + "id": 2305, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:11" + "src": "0:23:20" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 1574, + "id": 2306, "nodeType": "ImportDirective", - "scope": 1759, - "sourceUnit": 652, - "src": "24:23:11", + "scope": 2491, + "sourceUnit": 733, + "src": "24:23:20", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 1575, + "id": 2307, "nodeType": "ImportDirective", - "scope": 1759, - "sourceUnit": 1433, - "src": "48:29:11", + "scope": 2491, + "sourceUnit": 1512, + "src": "48:29:20", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", "file": "../SignatureValidator.sol", - "id": 1576, + "id": 2308, "nodeType": "ImportDirective", - "scope": 1759, - "sourceUnit": 1506, - "src": "78:35:11", + "scope": 2491, + "sourceUnit": 1745, + "src": "78:35:20", "symbolAliases": [], "unitAlias": "" }, @@ -278,66 +220,66 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1577, + "id": 2309, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 651, - "src": "336:6:11", + "referencedDeclaration": 732, + "src": "336:6:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, - "id": 1578, + "id": 2310, "nodeType": "InheritanceSpecifier", - "src": "336:6:11" + "src": "336:6:20" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 1579, + "id": 2311, "name": "SignatureValidator", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1505, - "src": "344:18:11", + "referencedDeclaration": 1744, + "src": "344:18:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureValidator_$1505", + "typeIdentifier": "t_contract$_SignatureValidator_$1744", "typeString": "contract SignatureValidator" } }, - "id": 1580, + "id": 2312, "nodeType": "InheritanceSpecifier", - "src": "344:18:11" + "src": "344:18:20" } ], "contractDependencies": [ - 608, - 651, - 1449, - 1505 + 632, + 732, + 1688, + 1744 ], "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": 1758, + "id": 2490, "linearizedBaseContracts": [ - 1758, - 1505, - 651, - 608, - 1449 + 2490, + 1744, + 732, + 632, + 1688 ], "name": "StateChannelModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 1583, + "id": 2315, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 1758, - "src": "370:52:11", + "scope": 2490, + "src": "370:52:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -345,10 +287,10 @@ "typeString": "string" }, "typeName": { - "id": 1581, + "id": 2313, "name": "string", "nodeType": "ElementaryTypeName", - "src": "370:6:11", + "src": "370:6:20", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -357,14 +299,14 @@ "value": { "argumentTypes": null, "hexValue": "5374617465204368616e6e656c204d6f64756c65", - "id": 1582, + "id": 2314, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "400:22:11", + "src": "400:22:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e66fa361bdba11103aaf2321b03707a79b393abf1f410f3f609398777fd3a713", @@ -376,11 +318,11 @@ }, { "constant": true, - "id": 1586, + "id": 2318, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 1758, - "src": "428:40:11", + "scope": 2490, + "src": "428:40:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -388,10 +330,10 @@ "typeString": "string" }, "typeName": { - "id": 1584, + "id": 2316, "name": "string", "nodeType": "ElementaryTypeName", - "src": "428:6:11", + "src": "428:6:20", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -400,14 +342,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 1585, + "id": 2317, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "461:7:11", + "src": "461:7:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -419,11 +361,11 @@ }, { "constant": false, - "id": 1590, + "id": 2322, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 1758, - "src": "566:46:11", + "scope": 2490, + "src": "566:46:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -431,28 +373,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 1589, + "id": 2321, "keyType": { - "id": 1587, + "id": 2319, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "575:7:11", + "src": "575:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "566:28:11", + "src": "566:28:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 1588, + "id": 2320, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "586:7:11", + "src": "586:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -464,9 +406,9 @@ }, { "body": { - "id": 1596, + "id": 2328, "nodeType": "Block", - "src": "696:29:11", + "src": "696:29:20", "statements": [ { "expression": { @@ -474,18 +416,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1593, + "id": 2325, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 650, - "src": "706:10:11", + "referencedDeclaration": 731, + "src": "706:10:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1594, + "id": 2326, "isConstant": false, "isLValue": false, "isPure": false, @@ -493,20 +435,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "706:12:11", + "src": "706:12:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1595, + "id": 2327, "nodeType": "ExpressionStatement", - "src": "706:12:11" + "src": "706:12:20" } ] }, "documentation": "@dev Setup function sets manager", - "id": 1597, + "id": 2329, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -514,42 +456,42 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 1591, + "id": 2323, "nodeType": "ParameterList", "parameters": [], - "src": "674:2:11" + "src": "674:2:20" }, "payable": false, "returnParameters": { - "id": 1592, + "id": 2324, "nodeType": "ParameterList", "parameters": [], - "src": "696:0:11" + "src": "696:0:20" }, - "scope": 1758, - "src": "660:65:11", + "scope": 2490, + "src": "660:65:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1653, + "id": 2385, "nodeType": "Block", - "src": "1390:434:11", + "src": "1390:434:20", "statements": [ { "assignments": [ - 1613 + 2345 ], "declarations": [ { "constant": false, - "id": 1613, + "id": 2345, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 1654, - "src": "1400:23:11", + "scope": 2386, + "src": "1400:23:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -557,10 +499,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1612, + "id": 2344, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1400:7:11", + "src": "1400:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -570,18 +512,18 @@ "visibility": "internal" } ], - "id": 1621, + "id": 2353, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1615, + "id": 2347, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "1445:2:11", + "referencedDeclaration": 2331, + "src": "1445:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -589,12 +531,12 @@ }, { "argumentTypes": null, - "id": 1616, + "id": 2348, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1601, - "src": "1449:5:11", + "referencedDeclaration": 2333, + "src": "1449:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -602,12 +544,12 @@ }, { "argumentTypes": null, - "id": 1617, + "id": 2349, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1603, - "src": "1456:4:11", + "referencedDeclaration": 2335, + "src": "1456:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -615,25 +557,25 @@ }, { "argumentTypes": null, - "id": 1618, + "id": 2350, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1605, - "src": "1462:9:11", + "referencedDeclaration": 2337, + "src": "1462:9:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 1619, + "id": 2351, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1607, - "src": "1473:5:11", + "referencedDeclaration": 2339, + "src": "1473:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -655,7 +597,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -663,18 +605,18 @@ "typeString": "uint256" } ], - "id": 1614, + "id": 2346, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1757, - "src": "1426:18:11", + "referencedDeclaration": 2489, + "src": "1426:18:20", "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": 1620, + "id": 2352, "isConstant": false, "isLValue": false, "isPure": false, @@ -682,14 +624,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1426:53:11", + "src": "1426:53:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "1400:79:11" + "src": "1400:79:20" }, { "expression": { @@ -701,7 +643,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1627, + "id": 2359, "isConstant": false, "isLValue": false, "isPure": false, @@ -710,26 +652,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1623, + "id": 2355, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1590, - "src": "1497:10:11", + "referencedDeclaration": 2322, + "src": "1497:10:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 1625, + "id": 2357, "indexExpression": { "argumentTypes": null, - "id": 1624, + "id": 2356, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1613, - "src": "1508:15:11", + "referencedDeclaration": 2345, + "src": "1508:15:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -740,7 +682,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1497:27:11", + "src": "1497:27:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -751,14 +693,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1626, + "id": 2358, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1528:1:11", + "src": "1528:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -766,7 +708,7 @@ }, "value": "0" }, - "src": "1497:32:11", + "src": "1497:32:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -775,14 +717,14 @@ { "argumentTypes": null, "hexValue": "5472616e73616374696f6e20616c7265616479206578656375746564", - "id": 1628, + "id": 2360, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1531:30:11", + "src": "1531:30:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3c3f7cf602281cf7a98efd78d98ba46309975dadee18bcb57e640145699bd800", @@ -802,21 +744,21 @@ "typeString": "literal_string \"Transaction already executed\"" } ], - "id": 1622, + "id": 2354, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1489:7:11", + "referencedDeclaration": 2663, + "src": "1489:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1629, + "id": 2361, "isConstant": false, "isLValue": false, "isPure": false, @@ -824,15 +766,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1489:73:11", + "src": "1489:73:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1630, + "id": 2362, "nodeType": "ExpressionStatement", - "src": "1489:73:11" + "src": "1489:73:20" }, { "expression": { @@ -840,12 +782,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1632, + "id": 2364, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1613, - "src": "1582:15:11", + "referencedDeclaration": 2345, + "src": "1582:15:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -853,12 +795,12 @@ }, { "argumentTypes": null, - "id": 1633, + "id": 2365, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1609, - "src": "1599:10:11", + "referencedDeclaration": 2341, + "src": "1599:10:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -876,18 +818,18 @@ "typeString": "bytes memory" } ], - "id": 1631, + "id": 2363, "name": "checkHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1723, - "src": "1572:9:11", + "referencedDeclaration": 2455, + "src": "1572:9:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes32,bytes memory) view" } }, - "id": 1634, + "id": 2366, "isConstant": false, "isLValue": false, "isPure": false, @@ -895,20 +837,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1572:38:11", + "src": "1572:38:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1635, + "id": 2367, "nodeType": "ExpressionStatement", - "src": "1572:38:11" + "src": "1572:38:20" }, { "expression": { "argumentTypes": null, - "id": 1640, + "id": 2372, "isConstant": false, "isLValue": false, "isPure": false, @@ -917,26 +859,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1636, + "id": 2368, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1590, - "src": "1673:10:11", + "referencedDeclaration": 2322, + "src": "1673:10:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 1638, + "id": 2370, "indexExpression": { "argumentTypes": null, - "id": 1637, + "id": 2369, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1613, - "src": "1684:15:11", + "referencedDeclaration": 2345, + "src": "1684:15:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -947,7 +889,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1673:27:11", + "src": "1673:27:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -958,14 +900,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 1639, + "id": 2371, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1703:1:11", + "src": "1703:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -973,15 +915,15 @@ }, "value": "1" }, - "src": "1673:31:11", + "src": "1673:31:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1641, + "id": 2373, "nodeType": "ExpressionStatement", - "src": "1673:31:11" + "src": "1673:31:20" }, { "expression": { @@ -992,12 +934,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1645, + "id": 2377, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "1756:2:11", + "referencedDeclaration": 2331, + "src": "1756:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1005,12 +947,12 @@ }, { "argumentTypes": null, - "id": 1646, + "id": 2378, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1601, - "src": "1760:5:11", + "referencedDeclaration": 2333, + "src": "1760:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1018,12 +960,12 @@ }, { "argumentTypes": null, - "id": 1647, + "id": 2379, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1603, - "src": "1767:4:11", + "referencedDeclaration": 2335, + "src": "1767:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1031,14 +973,14 @@ }, { "argumentTypes": null, - "id": 1648, + "id": 2380, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1605, - "src": "1773:9:11", + "referencedDeclaration": 2337, + "src": "1773:9:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } } @@ -1058,38 +1000,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 1643, + "id": 2375, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "1722:7:11", + "referencedDeclaration": 697, + "src": "1722:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } }, - "id": 1644, + "id": 2376, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 849, - "src": "1722:33:11", + "referencedDeclaration": 930, + "src": "1722: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": 1649, + "id": 2381, "isConstant": false, "isLValue": false, "isPure": false, @@ -1097,7 +1039,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1722:61:11", + "src": "1722:61:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1106,14 +1048,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 1650, + "id": 2382, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1785:31:11", + "src": "1785:31:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", @@ -1133,21 +1075,21 @@ "typeString": "literal_string \"Could not execute transaction\"" } ], - "id": 1642, + "id": 2374, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1714:7:11", + "referencedDeclaration": 2663, + "src": "1714:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1651, + "id": 2383, "isConstant": false, "isLValue": false, "isPure": false, @@ -1155,20 +1097,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1714:103:11", + "src": "1714:103:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1652, + "id": 2384, "nodeType": "ExpressionStatement", - "src": "1714:103:11" + "src": "1714:103:20" } ] }, "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 signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", - "id": 1654, + "id": 2386, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -1176,16 +1118,16 @@ "name": "execTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 1610, + "id": 2342, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1599, + "id": 2331, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1654, - "src": "1224:10:11", + "scope": 2386, + "src": "1224:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1193,10 +1135,10 @@ "typeString": "address" }, "typeName": { - "id": 1598, + "id": 2330, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1224:7:11", + "src": "1224:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1207,11 +1149,11 @@ }, { "constant": false, - "id": 1601, + "id": 2333, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1654, - "src": "1245:13:11", + "scope": 2386, + "src": "1245:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1219,10 +1161,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1600, + "id": 2332, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1245:7:11", + "src": "1245:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1233,11 +1175,11 @@ }, { "constant": false, - "id": 1603, + "id": 2335, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1654, - "src": "1269:10:11", + "scope": 2386, + "src": "1269:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1245,10 +1187,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1602, + "id": 2334, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1269:5:11", + "src": "1269:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1259,26 +1201,26 @@ }, { "constant": false, - "id": 1605, + "id": 2337, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 1654, - "src": "1290:24:11", + "scope": 2386, + "src": "1290:24:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 1604, + "id": 2336, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "1290:14:11", + "referencedDeclaration": 29, + "src": "1290:14:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -1287,11 +1229,11 @@ }, { "constant": false, - "id": 1607, + "id": 2339, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 1654, - "src": "1325:13:11", + "scope": 2386, + "src": "1325:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1299,10 +1241,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1606, + "id": 2338, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1325:7:11", + "src": "1325:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1313,11 +1255,11 @@ }, { "constant": false, - "id": 1609, + "id": 2341, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 1654, - "src": "1348:16:11", + "scope": 2386, + "src": "1348:16:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1325,10 +1267,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1608, + "id": 2340, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1348:5:11", + "src": "1348:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -1338,39 +1280,39 @@ "visibility": "internal" } ], - "src": "1214:156:11" + "src": "1214:156:20" }, "payable": false, "returnParameters": { - "id": 1611, + "id": 2343, "nodeType": "ParameterList", "parameters": [], - "src": "1390:0:11" + "src": "1390:0:20" }, - "scope": 1758, - "src": "1190:634:11", + "scope": 2490, + "src": "1190:634:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1722, + "id": 2454, "nodeType": "Block", - "src": "1926:610:11", + "src": "1926:612:20", "statements": [ { "assignments": [ - 1662 + 2394 ], "declarations": [ { "constant": false, - "id": 1662, + "id": 2394, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 1723, - "src": "1988:17:11", + "scope": 2455, + "src": "1988:17:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1378,10 +1320,10 @@ "typeString": "address" }, "typeName": { - "id": 1661, + "id": 2393, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1988:7:11", + "src": "1988:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1391,21 +1333,21 @@ "visibility": "internal" } ], - "id": 1666, + "id": 2398, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 1664, + "id": 2396, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2016:1:11", + "src": "2016:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -1421,20 +1363,20 @@ "typeString": "int_const 0" } ], - "id": 1663, + "id": 2395, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2008:7:11", + "src": "2008:7:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1665, + "id": 2397, "isConstant": false, "isLValue": false, "isPure": true, @@ -1442,25 +1384,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2008:10:11", + "src": "2008:10:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1988:30:11" + "src": "1988:30:20" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 1668, + "id": 2400, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1723, - "src": "2028:20:11", + "scope": 2455, + "src": "2028:20:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1468,10 +1410,10 @@ "typeString": "address" }, "typeName": { - "id": 1667, + "id": 2399, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2028:7:11", + "src": "2028:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1481,21 +1423,21 @@ "visibility": "internal" } ], - "id": 1669, + "id": 2401, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "2028:20:11" + "src": "2028:20:20" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 1671, + "id": 2403, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1723, - "src": "2058:9:11", + "scope": 2455, + "src": "2058:9:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -1503,10 +1445,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1670, + "id": 2402, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2058:7:11", + "src": "2058:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1516,44 +1458,44 @@ "visibility": "internal" } ], - "id": 1672, + "id": 2404, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "2058:9:11" + "src": "2058:9:20" }, { "assignments": [ - 1674 + 2406 ], "declarations": [ { "constant": false, - "id": 1674, + "id": 2406, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 1723, - "src": "2077:15:11", + "scope": 2455, + "src": "2077:17:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1673, - "name": "uint8", + "id": 2405, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2077:5:11", + "src": "2077:7:20", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "id": 1680, + "id": 2412, "initialValue": { "argumentTypes": null, "arguments": [], @@ -1564,14 +1506,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1676, + "id": 2408, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "2108:7:11", + "referencedDeclaration": 697, + "src": "2110:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } } @@ -1579,22 +1521,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } ], - "id": 1675, + "id": 2407, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1432, - "src": "2095:12:11", + "referencedDeclaration": 1511, + "src": "2097:12:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1432_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1511_$", "typeString": "type(contract OwnerManager)" } }, - "id": 1677, + "id": 2409, "isConstant": false, "isLValue": false, "isPure": false, @@ -1602,27 +1544,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2095:21:11", + "src": "2097:21:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1432", + "typeIdentifier": "t_contract$_OwnerManager_$1511", "typeString": "contract OwnerManager" } }, - "id": 1678, + "id": 2410, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getThreshold", "nodeType": "MemberAccess", - "referencedDeclaration": 1368, - "src": "2095:34:11", + "referencedDeclaration": 1447, + "src": "2097:34:20", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" } }, - "id": 1679, + "id": 2411, "isConstant": false, "isLValue": false, "isPure": false, @@ -1630,37 +1572,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2095:36:11", + "src": "2097:36:20", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2077:54:11" + "src": "2077:56:20" }, { "body": { - "id": 1720, + "id": 2452, "nodeType": "Block", - "src": "2215:315:11", + "src": "2217:315:20", "statements": [ { "expression": { "argumentTypes": null, - "id": 1697, + "id": 2429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1691, + "id": 2423, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, - "src": "2229:12:11", + "referencedDeclaration": 2400, + "src": "2231:12:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1673,12 +1615,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1693, + "id": 2425, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1656, - "src": "2255:15:11", + "referencedDeclaration": 2388, + "src": "2257:15:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -1686,12 +1628,12 @@ }, { "argumentTypes": null, - "id": 1694, + "id": 2426, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1658, - "src": "2272:10:11", + "referencedDeclaration": 2390, + "src": "2274:10:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -1699,12 +1641,12 @@ }, { "argumentTypes": null, - "id": 1695, + "id": 2427, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1671, - "src": "2284:1:11", + "referencedDeclaration": 2403, + "src": "2286:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -1726,18 +1668,18 @@ "typeString": "uint256" } ], - "id": 1692, + "id": 2424, "name": "recoverKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "2244:10:11", + "referencedDeclaration": 1728, + "src": "2246:10:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$", "typeString": "function (bytes32,bytes memory,uint256) pure returns (address)" } }, - "id": 1696, + "id": 2428, "isConstant": false, "isLValue": false, "isPure": false, @@ -1745,21 +1687,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2244:42:11", + "src": "2246:42:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2229:57:11", + "src": "2231:57:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1698, + "id": 2430, "nodeType": "ExpressionStatement", - "src": "2229:57:11" + "src": "2231:57:20" }, { "expression": { @@ -1770,12 +1712,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1704, + "id": 2436, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, - "src": "2338:12:11", + "referencedDeclaration": 2400, + "src": "2340:12:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1794,14 +1736,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1701, + "id": 2433, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "2321:7:11", + "referencedDeclaration": 697, + "src": "2323:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } } @@ -1809,22 +1751,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } ], - "id": 1700, + "id": 2432, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1432, - "src": "2308:12:11", + "referencedDeclaration": 1511, + "src": "2310:12:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1432_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1511_$", "typeString": "type(contract OwnerManager)" } }, - "id": 1702, + "id": 2434, "isConstant": false, "isLValue": false, "isPure": false, @@ -1832,27 +1774,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2308:21:11", + "src": "2310:21:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1432", + "typeIdentifier": "t_contract$_OwnerManager_$1511", "typeString": "contract OwnerManager" } }, - "id": 1703, + "id": 2435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1382, - "src": "2308:29:11", + "referencedDeclaration": 1461, + "src": "2310:29:20", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 1705, + "id": 2437, "isConstant": false, "isLValue": false, "isPure": false, @@ -1860,7 +1802,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2308:43:11", + "src": "2310:43:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1869,14 +1811,14 @@ { "argumentTypes": null, "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 1706, + "id": 2438, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2353:33:11", + "src": "2355:33:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", @@ -1896,21 +1838,21 @@ "typeString": "literal_string \"Signature not provided by owner\"" } ], - "id": 1699, + "id": 2431, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2300:7:11", + "referencedDeclaration": 2663, + "src": "2302:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1707, + "id": 2439, "isConstant": false, "isLValue": false, "isPure": false, @@ -1918,15 +1860,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2300:87:11", + "src": "2302:87:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1708, + "id": 2440, "nodeType": "ExpressionStatement", - "src": "2300:87:11" + "src": "2302:87:20" }, { "expression": { @@ -1938,19 +1880,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1712, + "id": 2444, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1710, + "id": 2442, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, - "src": "2409:12:11", + "referencedDeclaration": 2400, + "src": "2411:12:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -1960,18 +1902,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 1711, + "id": 2443, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1662, - "src": "2424:9:11", + "referencedDeclaration": 2394, + "src": "2426:9:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2409:24:11", + "src": "2411:24:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -1980,14 +1922,14 @@ { "argumentTypes": null, "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 1713, + "id": 2445, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2435:45:11", + "src": "2437:45:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", @@ -2007,21 +1949,21 @@ "typeString": "literal_string \"Signatures are not ordered by owner address\"" } ], - "id": 1709, + "id": 2441, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2401:7:11", + "referencedDeclaration": 2663, + "src": "2403:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1714, + "id": 2446, "isConstant": false, "isLValue": false, "isPure": false, @@ -2029,32 +1971,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2401:80:11", + "src": "2403:80:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1715, + "id": 2447, "nodeType": "ExpressionStatement", - "src": "2401:80:11" + "src": "2403:80:20" }, { "expression": { "argumentTypes": null, - "id": 1718, + "id": 2450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1716, + "id": 2448, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1662, - "src": "2495:9:11", + "referencedDeclaration": 2394, + "src": "2497:9:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2064,26 +2006,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1717, + "id": 2449, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, - "src": "2507:12:11", + "referencedDeclaration": 2400, + "src": "2509:12:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2495:24:11", + "src": "2497:24:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1719, + "id": 2451, "nodeType": "ExpressionStatement", - "src": "2495:24:11" + "src": "2497:24:20" } ] }, @@ -2093,19 +2035,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1687, + "id": 2419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1685, + "id": 2417, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1671, - "src": "2195:1:11", + "referencedDeclaration": 2403, + "src": "2197:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2115,40 +2057,40 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 1686, + "id": 2418, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1674, - "src": "2199:9:11", + "referencedDeclaration": 2406, + "src": "2201:9:20", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "2195:13:11", + "src": "2197:13:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1721, + "id": 2453, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 1683, + "id": 2415, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1681, + "id": 2413, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1671, - "src": "2188:1:11", + "referencedDeclaration": 2403, + "src": "2190:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2159,14 +2101,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1682, + "id": 2414, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2192:1:11", + "src": "2194:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2174,20 +2116,20 @@ }, "value": "0" }, - "src": "2188:5:11", + "src": "2190:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1684, + "id": 2416, "nodeType": "ExpressionStatement", - "src": "2188:5:11" + "src": "2190:5:20" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1689, + "id": 2421, "isConstant": false, "isLValue": false, "isPure": false, @@ -2195,15 +2137,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2210:3:11", + "src": "2212:3:20", "subExpression": { "argumentTypes": null, - "id": 1688, + "id": 2420, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1671, - "src": "2210:1:11", + "referencedDeclaration": 2403, + "src": "2212:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2214,17 +2156,17 @@ "typeString": "uint256" } }, - "id": 1690, + "id": 2422, "nodeType": "ExpressionStatement", - "src": "2210:3:11" + "src": "2212:3:20" }, "nodeType": "ForStatement", - "src": "2183:347:11" + "src": "2185:347:20" } ] }, "documentation": null, - "id": 1723, + "id": 2455, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2232,16 +2174,16 @@ "name": "checkHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 1659, + "id": 2391, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1656, + "id": 2388, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 1723, - "src": "1849:23:11", + "scope": 2455, + "src": "1849:23:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2249,10 +2191,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1655, + "id": 2387, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1849:7:11", + "src": "1849:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2263,11 +2205,11 @@ }, { "constant": false, - "id": 1658, + "id": 2390, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 1723, - "src": "1874:16:11", + "scope": 2455, + "src": "1874:16:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2275,10 +2217,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1657, + "id": 2389, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1874:5:11", + "src": "1874:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2288,26 +2230,26 @@ "visibility": "internal" } ], - "src": "1848:43:11" + "src": "1848:43:20" }, "payable": false, "returnParameters": { - "id": 1660, + "id": 2392, "nodeType": "ParameterList", "parameters": [], - "src": "1926:0:11" + "src": "1926:0:20" }, - "scope": 1758, - "src": "1830:706:11", + "scope": 2490, + "src": "1830:708:20", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1756, + "id": 2488, "nodeType": "Block", - "src": "3030:113:11", + "src": "3032:113:20", "statements": [ { "expression": { @@ -2322,14 +2264,14 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 1742, + "id": 2474, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3079:4:11", + "src": "3081:4:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", @@ -2345,20 +2287,20 @@ "typeString": "int_const 25" } ], - "id": 1741, + "id": 2473, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3074:4:11", + "src": "3076:4:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 1743, + "id": 2475, "isConstant": false, "isLValue": false, "isPure": true, @@ -2366,7 +2308,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3074:10:11", + "src": "3076:10:20", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -2378,14 +2320,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1745, + "id": 2477, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3091:1:11", + "src": "3093:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -2401,20 +2343,20 @@ "typeString": "int_const 0" } ], - "id": 1744, + "id": 2476, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3086:4:11", + "src": "3088:4:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 1746, + "id": 2478, "isConstant": false, "isLValue": false, "isPure": true, @@ -2422,7 +2364,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3086:7:11", + "src": "3088:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -2430,25 +2372,25 @@ }, { "argumentTypes": null, - "id": 1747, + "id": 2479, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1808, - "src": "3095:4:11", + "referencedDeclaration": 2712, + "src": "3097:4:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_StateChannelModule_$1758", + "typeIdentifier": "t_contract$_StateChannelModule_$2490", "typeString": "contract StateChannelModule" } }, { "argumentTypes": null, - "id": 1748, + "id": 2480, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1725, - "src": "3101:2:11", + "referencedDeclaration": 2457, + "src": "3103:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2456,12 +2398,12 @@ }, { "argumentTypes": null, - "id": 1749, + "id": 2481, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1727, - "src": "3105:5:11", + "referencedDeclaration": 2459, + "src": "3107:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2469,12 +2411,12 @@ }, { "argumentTypes": null, - "id": 1750, + "id": 2482, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "3112:4:11", + "referencedDeclaration": 2461, + "src": "3114:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2482,25 +2424,25 @@ }, { "argumentTypes": null, - "id": 1751, + "id": 2483, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1731, - "src": "3118:9:11", + "referencedDeclaration": 2463, + "src": "3120:9:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 1752, + "id": 2484, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1733, - "src": "3129:5:11", + "referencedDeclaration": 2465, + "src": "3131:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2518,7 +2460,7 @@ "typeString": "bytes1" }, { - "typeIdentifier": "t_contract$_StateChannelModule_$1758", + "typeIdentifier": "t_contract$_StateChannelModule_$2490", "typeString": "contract StateChannelModule" }, { @@ -2534,7 +2476,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -2544,18 +2486,18 @@ ], "expression": { "argumentTypes": null, - "id": 1739, + "id": 2471, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1760, - "src": "3057:3:11", + "referencedDeclaration": 2646, + "src": "3059:3:20", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 1740, + "id": 2472, "isConstant": false, "isLValue": false, "isPure": true, @@ -2563,13 +2505,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3057:16:11", + "src": "3059:16:20", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1753, + "id": 2485, "isConstant": false, "isLValue": false, "isPure": false, @@ -2577,7 +2519,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3057:78:11", + "src": "3059:78:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -2591,18 +2533,18 @@ "typeString": "bytes memory" } ], - "id": 1738, + "id": 2470, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "3047:9:11", + "referencedDeclaration": 2653, + "src": "3049:9:20", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 1754, + "id": 2486, "isConstant": false, "isLValue": false, "isPure": false, @@ -2610,21 +2552,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3047:89:11", + "src": "3049:89:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 1737, - "id": 1755, + "functionReturnParameters": 2469, + "id": 2487, "nodeType": "Return", - "src": "3040:96:11" + "src": "3042:96:20" } ] }, "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": 1757, + "id": 2489, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -2632,16 +2574,16 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 1734, + "id": 2466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1725, + "id": 2457, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1757, - "src": "2851:10:11", + "scope": 2489, + "src": "2853:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2649,10 +2591,10 @@ "typeString": "address" }, "typeName": { - "id": 1724, + "id": 2456, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2851:7:11", + "src": "2853:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -2663,11 +2605,11 @@ }, { "constant": false, - "id": 1727, + "id": 2459, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1757, - "src": "2872:13:11", + "scope": 2489, + "src": "2874:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2675,10 +2617,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1726, + "id": 2458, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2872:7:11", + "src": "2874:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2689,11 +2631,11 @@ }, { "constant": false, - "id": 1729, + "id": 2461, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1757, - "src": "2896:10:11", + "scope": 2489, + "src": "2898:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2701,10 +2643,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1728, + "id": 2460, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2896:5:11", + "src": "2898:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -2715,26 +2657,26 @@ }, { "constant": false, - "id": 1731, + "id": 2463, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 1757, - "src": "2917:24:11", + "scope": 2489, + "src": "2919:24:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 1730, + "id": 2462, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "2917:14:11", + "referencedDeclaration": 29, + "src": "2919:14:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -2743,11 +2685,11 @@ }, { "constant": false, - "id": 1733, + "id": 2465, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 1757, - "src": "2952:13:11", + "scope": 2489, + "src": "2954:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2755,10 +2697,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1732, + "id": 2464, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2952:7:11", + "src": "2954:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -2768,20 +2710,20 @@ "visibility": "internal" } ], - "src": "2841:130:11" + "src": "2843:130:20" }, "payable": false, "returnParameters": { - "id": 1737, + "id": 2469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1736, + "id": 2468, "name": "", "nodeType": "VariableDeclaration", - "scope": 1757, - "src": "3017:7:11", + "scope": 2489, + "src": "3019:7:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -2789,10 +2731,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1735, + "id": 2467, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3017:7:11", + "src": "3019:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -2802,71 +2744,71 @@ "visibility": "internal" } ], - "src": "3016:9:11" + "src": "3018:9:20" }, - "scope": 1758, - "src": "2814:329:11", + "scope": 2490, + "src": "2816:329:20", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1759, - "src": "305:2840:11" + "scope": 2491, + "src": "305:2842:20" } ], - "src": "0:3146:11" + "src": "0:3148:20" }, "legacyAST": { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/StateChannelModule.sol", "exportedSymbols": { "StateChannelModule": [ - 1758 + 2490 ] }, - "id": 1759, + "id": 2491, "nodeType": "SourceUnit", "nodes": [ { - "id": 1573, + "id": 2305, "literals": [ "solidity", "0.4", ".24" ], "nodeType": "PragmaDirective", - "src": "0:23:11" + "src": "0:23:20" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 1574, + "id": 2306, "nodeType": "ImportDirective", - "scope": 1759, - "sourceUnit": 652, - "src": "24:23:11", + "scope": 2491, + "sourceUnit": 733, + "src": "24:23:20", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 1575, + "id": 2307, "nodeType": "ImportDirective", - "scope": 1759, - "sourceUnit": 1433, - "src": "48:29:11", + "scope": 2491, + "sourceUnit": 1512, + "src": "48:29:20", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/SignatureValidator.sol", "file": "../SignatureValidator.sol", - "id": 1576, + "id": 2308, "nodeType": "ImportDirective", - "scope": 1759, - "sourceUnit": 1506, - "src": "78:35:11", + "scope": 2491, + "sourceUnit": 1745, + "src": "78:35:20", "symbolAliases": [], "unitAlias": "" }, @@ -2876,66 +2818,66 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 1577, + "id": 2309, "name": "Module", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 651, - "src": "336:6:11", + "referencedDeclaration": 732, + "src": "336:6:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_Module_$651", + "typeIdentifier": "t_contract$_Module_$732", "typeString": "contract Module" } }, - "id": 1578, + "id": 2310, "nodeType": "InheritanceSpecifier", - "src": "336:6:11" + "src": "336:6:20" }, { "arguments": null, "baseName": { "contractScope": null, - "id": 1579, + "id": 2311, "name": "SignatureValidator", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1505, - "src": "344:18:11", + "referencedDeclaration": 1744, + "src": "344:18:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_SignatureValidator_$1505", + "typeIdentifier": "t_contract$_SignatureValidator_$1744", "typeString": "contract SignatureValidator" } }, - "id": 1580, + "id": 2312, "nodeType": "InheritanceSpecifier", - "src": "344:18:11" + "src": "344:18:20" } ], "contractDependencies": [ - 608, - 651, - 1449, - 1505 + 632, + 732, + 1688, + 1744 ], "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": 1758, + "id": 2490, "linearizedBaseContracts": [ - 1758, - 1505, - 651, - 608, - 1449 + 2490, + 1744, + 732, + 632, + 1688 ], "name": "StateChannelModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 1583, + "id": 2315, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 1758, - "src": "370:52:11", + "scope": 2490, + "src": "370:52:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2943,10 +2885,10 @@ "typeString": "string" }, "typeName": { - "id": 1581, + "id": 2313, "name": "string", "nodeType": "ElementaryTypeName", - "src": "370:6:11", + "src": "370:6:20", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2955,14 +2897,14 @@ "value": { "argumentTypes": null, "hexValue": "5374617465204368616e6e656c204d6f64756c65", - "id": 1582, + "id": 2314, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "400:22:11", + "src": "400:22:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_e66fa361bdba11103aaf2321b03707a79b393abf1f410f3f609398777fd3a713", @@ -2974,11 +2916,11 @@ }, { "constant": true, - "id": 1586, + "id": 2318, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 1758, - "src": "428:40:11", + "scope": 2490, + "src": "428:40:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -2986,10 +2928,10 @@ "typeString": "string" }, "typeName": { - "id": 1584, + "id": 2316, "name": "string", "nodeType": "ElementaryTypeName", - "src": "428:6:11", + "src": "428:6:20", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -2998,14 +2940,14 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 1585, + "id": 2317, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "461:7:11", + "src": "461:7:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_ae209a0b48f21c054280f2455d32cf309387644879d9acbd8ffc199163811885", @@ -3017,11 +2959,11 @@ }, { "constant": false, - "id": 1590, + "id": 2322, "name": "isExecuted", "nodeType": "VariableDeclaration", - "scope": 1758, - "src": "566:46:11", + "scope": 2490, + "src": "566:46:20", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -3029,28 +2971,28 @@ "typeString": "mapping(bytes32 => uint256)" }, "typeName": { - "id": 1589, + "id": 2321, "keyType": { - "id": 1587, + "id": 2319, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "575:7:11", + "src": "575:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "566:28:11", + "src": "566:28:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" }, "valueType": { - "id": 1588, + "id": 2320, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "586:7:11", + "src": "586:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3062,9 +3004,9 @@ }, { "body": { - "id": 1596, + "id": 2328, "nodeType": "Block", - "src": "696:29:11", + "src": "696:29:20", "statements": [ { "expression": { @@ -3072,18 +3014,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 1593, + "id": 2325, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 650, - "src": "706:10:11", + "referencedDeclaration": 731, + "src": "706:10:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1594, + "id": 2326, "isConstant": false, "isLValue": false, "isPure": false, @@ -3091,20 +3033,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "706:12:11", + "src": "706:12:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1595, + "id": 2327, "nodeType": "ExpressionStatement", - "src": "706:12:11" + "src": "706:12:20" } ] }, "documentation": "@dev Setup function sets manager", - "id": 1597, + "id": 2329, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3112,42 +3054,42 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 1591, + "id": 2323, "nodeType": "ParameterList", "parameters": [], - "src": "674:2:11" + "src": "674:2:20" }, "payable": false, "returnParameters": { - "id": 1592, + "id": 2324, "nodeType": "ParameterList", "parameters": [], - "src": "696:0:11" + "src": "696:0:20" }, - "scope": 1758, - "src": "660:65:11", + "scope": 2490, + "src": "660:65:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1653, + "id": 2385, "nodeType": "Block", - "src": "1390:434:11", + "src": "1390:434:20", "statements": [ { "assignments": [ - 1613 + 2345 ], "declarations": [ { "constant": false, - "id": 1613, + "id": 2345, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 1654, - "src": "1400:23:11", + "scope": 2386, + "src": "1400:23:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3155,10 +3097,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1612, + "id": 2344, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1400:7:11", + "src": "1400:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3168,18 +3110,18 @@ "visibility": "internal" } ], - "id": 1621, + "id": 2353, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, - "id": 1615, + "id": 2347, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "1445:2:11", + "referencedDeclaration": 2331, + "src": "1445:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3187,12 +3129,12 @@ }, { "argumentTypes": null, - "id": 1616, + "id": 2348, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1601, - "src": "1449:5:11", + "referencedDeclaration": 2333, + "src": "1449:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3200,12 +3142,12 @@ }, { "argumentTypes": null, - "id": 1617, + "id": 2349, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1603, - "src": "1456:4:11", + "referencedDeclaration": 2335, + "src": "1456:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3213,25 +3155,25 @@ }, { "argumentTypes": null, - "id": 1618, + "id": 2350, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1605, - "src": "1462:9:11", + "referencedDeclaration": 2337, + "src": "1462:9:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 1619, + "id": 2351, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1607, - "src": "1473:5:11", + "referencedDeclaration": 2339, + "src": "1473:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3253,7 +3195,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -3261,18 +3203,18 @@ "typeString": "uint256" } ], - "id": 1614, + "id": 2346, "name": "getTransactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1757, - "src": "1426:18:11", + "referencedDeclaration": 2489, + "src": "1426:18:20", "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": 1620, + "id": 2352, "isConstant": false, "isLValue": false, "isPure": false, @@ -3280,14 +3222,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1426:53:11", + "src": "1426:53:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "1400:79:11" + "src": "1400:79:20" }, { "expression": { @@ -3299,7 +3241,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1627, + "id": 2359, "isConstant": false, "isLValue": false, "isPure": false, @@ -3308,26 +3250,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1623, + "id": 2355, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1590, - "src": "1497:10:11", + "referencedDeclaration": 2322, + "src": "1497:10:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 1625, + "id": 2357, "indexExpression": { "argumentTypes": null, - "id": 1624, + "id": 2356, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1613, - "src": "1508:15:11", + "referencedDeclaration": 2345, + "src": "1508:15:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3338,7 +3280,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "1497:27:11", + "src": "1497:27:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3349,14 +3291,14 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 1626, + "id": 2358, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1528:1:11", + "src": "1528:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -3364,7 +3306,7 @@ }, "value": "0" }, - "src": "1497:32:11", + "src": "1497:32:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3373,14 +3315,14 @@ { "argumentTypes": null, "hexValue": "5472616e73616374696f6e20616c7265616479206578656375746564", - "id": 1628, + "id": 2360, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1531:30:11", + "src": "1531:30:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_3c3f7cf602281cf7a98efd78d98ba46309975dadee18bcb57e640145699bd800", @@ -3400,21 +3342,21 @@ "typeString": "literal_string \"Transaction already executed\"" } ], - "id": 1622, + "id": 2354, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1489:7:11", + "referencedDeclaration": 2663, + "src": "1489:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1629, + "id": 2361, "isConstant": false, "isLValue": false, "isPure": false, @@ -3422,15 +3364,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1489:73:11", + "src": "1489:73:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1630, + "id": 2362, "nodeType": "ExpressionStatement", - "src": "1489:73:11" + "src": "1489:73:20" }, { "expression": { @@ -3438,12 +3380,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1632, + "id": 2364, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1613, - "src": "1582:15:11", + "referencedDeclaration": 2345, + "src": "1582:15:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3451,12 +3393,12 @@ }, { "argumentTypes": null, - "id": 1633, + "id": 2365, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1609, - "src": "1599:10:11", + "referencedDeclaration": 2341, + "src": "1599:10:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3474,18 +3416,18 @@ "typeString": "bytes memory" } ], - "id": 1631, + "id": 2363, "name": "checkHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1723, - "src": "1572:9:11", + "referencedDeclaration": 2455, + "src": "1572:9:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (bytes32,bytes memory) view" } }, - "id": 1634, + "id": 2366, "isConstant": false, "isLValue": false, "isPure": false, @@ -3493,20 +3435,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1572:38:11", + "src": "1572:38:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1635, + "id": 2367, "nodeType": "ExpressionStatement", - "src": "1572:38:11" + "src": "1572:38:20" }, { "expression": { "argumentTypes": null, - "id": 1640, + "id": 2372, "isConstant": false, "isLValue": false, "isPure": false, @@ -3515,26 +3457,26 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 1636, + "id": 2368, "name": "isExecuted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1590, - "src": "1673:10:11", + "referencedDeclaration": 2322, + "src": "1673:10:20", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", "typeString": "mapping(bytes32 => uint256)" } }, - "id": 1638, + "id": 2370, "indexExpression": { "argumentTypes": null, - "id": 1637, + "id": 2369, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1613, - "src": "1684:15:11", + "referencedDeclaration": 2345, + "src": "1684:15:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -3545,7 +3487,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "1673:27:11", + "src": "1673:27:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3556,14 +3498,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "31", - "id": 1639, + "id": 2371, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "1703:1:11", + "src": "1703:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", @@ -3571,15 +3513,15 @@ }, "value": "1" }, - "src": "1673:31:11", + "src": "1673:31:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1641, + "id": 2373, "nodeType": "ExpressionStatement", - "src": "1673:31:11" + "src": "1673:31:20" }, { "expression": { @@ -3590,12 +3532,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1645, + "id": 2377, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "1756:2:11", + "referencedDeclaration": 2331, + "src": "1756:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3603,12 +3545,12 @@ }, { "argumentTypes": null, - "id": 1646, + "id": 2378, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1601, - "src": "1760:5:11", + "referencedDeclaration": 2333, + "src": "1760:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3616,12 +3558,12 @@ }, { "argumentTypes": null, - "id": 1647, + "id": 2379, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1603, - "src": "1767:4:11", + "referencedDeclaration": 2335, + "src": "1767:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -3629,14 +3571,14 @@ }, { "argumentTypes": null, - "id": 1648, + "id": 2380, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1605, - "src": "1773:9:11", + "referencedDeclaration": 2337, + "src": "1773:9:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } } @@ -3656,38 +3598,38 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } ], "expression": { "argumentTypes": null, - "id": 1643, + "id": 2375, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "1722:7:11", + "referencedDeclaration": 697, + "src": "1722:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } }, - "id": 1644, + "id": 2376, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "execTransactionFromModule", "nodeType": "MemberAccess", - "referencedDeclaration": 849, - "src": "1722:33:11", + "referencedDeclaration": 930, + "src": "1722: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": 1649, + "id": 2381, "isConstant": false, "isLValue": false, "isPure": false, @@ -3695,7 +3637,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1722:61:11", + "src": "1722:61:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -3704,14 +3646,14 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 1650, + "id": 2382, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "1785:31:11", + "src": "1785:31:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_b0a2f29e31cc28eee068c27ff93342fb8d9840dcad25c6f669ce8154844930c4", @@ -3731,21 +3673,21 @@ "typeString": "literal_string \"Could not execute transaction\"" } ], - "id": 1642, + "id": 2374, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "1714:7:11", + "referencedDeclaration": 2663, + "src": "1714:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1651, + "id": 2383, "isConstant": false, "isLValue": false, "isPure": false, @@ -3753,20 +3695,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "1714:103:11", + "src": "1714:103:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1652, + "id": 2384, "nodeType": "ExpressionStatement", - "src": "1714:103:11" + "src": "1714:103:20" } ] }, "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 signatures Packed signature data ({bytes32 r}{bytes32 s}{uint8 v})", - "id": 1654, + "id": 2386, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -3774,16 +3716,16 @@ "name": "execTransaction", "nodeType": "FunctionDefinition", "parameters": { - "id": 1610, + "id": 2342, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1599, + "id": 2331, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1654, - "src": "1224:10:11", + "scope": 2386, + "src": "1224:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3791,10 +3733,10 @@ "typeString": "address" }, "typeName": { - "id": 1598, + "id": 2330, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1224:7:11", + "src": "1224:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3805,11 +3747,11 @@ }, { "constant": false, - "id": 1601, + "id": 2333, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1654, - "src": "1245:13:11", + "scope": 2386, + "src": "1245:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3817,10 +3759,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1600, + "id": 2332, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1245:7:11", + "src": "1245:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3831,11 +3773,11 @@ }, { "constant": false, - "id": 1603, + "id": 2335, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1654, - "src": "1269:10:11", + "scope": 2386, + "src": "1269:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3843,10 +3785,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1602, + "id": 2334, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1269:5:11", + "src": "1269:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3857,26 +3799,26 @@ }, { "constant": false, - "id": 1605, + "id": 2337, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 1654, - "src": "1290:24:11", + "scope": 2386, + "src": "1290:24:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 1604, + "id": 2336, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "1290:14:11", + "referencedDeclaration": 29, + "src": "1290:14:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -3885,11 +3827,11 @@ }, { "constant": false, - "id": 1607, + "id": 2339, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 1654, - "src": "1325:13:11", + "scope": 2386, + "src": "1325:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3897,10 +3839,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1606, + "id": 2338, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1325:7:11", + "src": "1325:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -3911,11 +3853,11 @@ }, { "constant": false, - "id": 1609, + "id": 2341, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 1654, - "src": "1348:16:11", + "scope": 2386, + "src": "1348:16:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3923,10 +3865,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1608, + "id": 2340, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1348:5:11", + "src": "1348:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -3936,39 +3878,39 @@ "visibility": "internal" } ], - "src": "1214:156:11" + "src": "1214:156:20" }, "payable": false, "returnParameters": { - "id": 1611, + "id": 2343, "nodeType": "ParameterList", "parameters": [], - "src": "1390:0:11" + "src": "1390:0:20" }, - "scope": 1758, - "src": "1190:634:11", + "scope": 2490, + "src": "1190:634:20", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" }, { "body": { - "id": 1722, + "id": 2454, "nodeType": "Block", - "src": "1926:610:11", + "src": "1926:612:20", "statements": [ { "assignments": [ - 1662 + 2394 ], "declarations": [ { "constant": false, - "id": 1662, + "id": 2394, "name": "lastOwner", "nodeType": "VariableDeclaration", - "scope": 1723, - "src": "1988:17:11", + "scope": 2455, + "src": "1988:17:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -3976,10 +3918,10 @@ "typeString": "address" }, "typeName": { - "id": 1661, + "id": 2393, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1988:7:11", + "src": "1988:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -3989,21 +3931,21 @@ "visibility": "internal" } ], - "id": 1666, + "id": 2398, "initialValue": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", - "id": 1664, + "id": 2396, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2016:1:11", + "src": "2016:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4019,20 +3961,20 @@ "typeString": "int_const 0" } ], - "id": 1663, + "id": 2395, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "2008:7:11", + "src": "2008:7:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": "address" }, - "id": 1665, + "id": 2397, "isConstant": false, "isLValue": false, "isPure": true, @@ -4040,25 +3982,25 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2008:10:11", + "src": "2008:10:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "1988:30:11" + "src": "1988:30:20" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 1668, + "id": 2400, "name": "currentOwner", "nodeType": "VariableDeclaration", - "scope": 1723, - "src": "2028:20:11", + "scope": 2455, + "src": "2028:20:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4066,10 +4008,10 @@ "typeString": "address" }, "typeName": { - "id": 1667, + "id": 2399, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2028:7:11", + "src": "2028:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4079,21 +4021,21 @@ "visibility": "internal" } ], - "id": 1669, + "id": 2401, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "2028:20:11" + "src": "2028:20:20" }, { "assignments": [], "declarations": [ { "constant": false, - "id": 1671, + "id": 2403, "name": "i", "nodeType": "VariableDeclaration", - "scope": 1723, - "src": "2058:9:11", + "scope": 2455, + "src": "2058:9:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4101,10 +4043,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1670, + "id": 2402, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2058:7:11", + "src": "2058:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4114,44 +4056,44 @@ "visibility": "internal" } ], - "id": 1672, + "id": 2404, "initialValue": null, "nodeType": "VariableDeclarationStatement", - "src": "2058:9:11" + "src": "2058:9:20" }, { "assignments": [ - 1674 + 2406 ], "declarations": [ { "constant": false, - "id": 1674, + "id": 2406, "name": "threshold", "nodeType": "VariableDeclaration", - "scope": 1723, - "src": "2077:15:11", + "scope": 2455, + "src": "2077:17:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" }, "typeName": { - "id": 1673, - "name": "uint8", + "id": 2405, + "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2077:5:11", + "src": "2077:7:20", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "value": null, "visibility": "internal" } ], - "id": 1680, + "id": 2412, "initialValue": { "argumentTypes": null, "arguments": [], @@ -4162,14 +4104,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1676, + "id": 2408, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "2108:7:11", + "referencedDeclaration": 697, + "src": "2110:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } } @@ -4177,22 +4119,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } ], - "id": 1675, + "id": 2407, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1432, - "src": "2095:12:11", + "referencedDeclaration": 1511, + "src": "2097:12:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1432_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1511_$", "typeString": "type(contract OwnerManager)" } }, - "id": 1677, + "id": 2409, "isConstant": false, "isLValue": false, "isPure": false, @@ -4200,27 +4142,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2095:21:11", + "src": "2097:21:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1432", + "typeIdentifier": "t_contract$_OwnerManager_$1511", "typeString": "contract OwnerManager" } }, - "id": 1678, + "id": 2410, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "getThreshold", "nodeType": "MemberAccess", - "referencedDeclaration": 1368, - "src": "2095:34:11", + "referencedDeclaration": 1447, + "src": "2097:34:20", "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", - "typeString": "function () view external returns (uint8)" + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" } }, - "id": 1679, + "id": 2411, "isConstant": false, "isLValue": false, "isPure": false, @@ -4228,37 +4170,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2095:36:11", + "src": "2097:36:20", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "2077:54:11" + "src": "2077:56:20" }, { "body": { - "id": 1720, + "id": 2452, "nodeType": "Block", - "src": "2215:315:11", + "src": "2217:315:20", "statements": [ { "expression": { "argumentTypes": null, - "id": 1697, + "id": 2429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1691, + "id": 2423, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, - "src": "2229:12:11", + "referencedDeclaration": 2400, + "src": "2231:12:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4271,12 +4213,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1693, + "id": 2425, "name": "transactionHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1656, - "src": "2255:15:11", + "referencedDeclaration": 2388, + "src": "2257:15:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4284,12 +4226,12 @@ }, { "argumentTypes": null, - "id": 1694, + "id": 2426, "name": "signatures", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1658, - "src": "2272:10:11", + "referencedDeclaration": 2390, + "src": "2274:10:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -4297,12 +4239,12 @@ }, { "argumentTypes": null, - "id": 1695, + "id": 2427, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1671, - "src": "2284:1:11", + "referencedDeclaration": 2403, + "src": "2286:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4324,18 +4266,18 @@ "typeString": "uint256" } ], - "id": 1692, + "id": 2424, "name": "recoverKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1489, - "src": "2244:10:11", + "referencedDeclaration": 1728, + "src": "2246:10:20", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_address_$", "typeString": "function (bytes32,bytes memory,uint256) pure returns (address)" } }, - "id": 1696, + "id": 2428, "isConstant": false, "isLValue": false, "isPure": false, @@ -4343,21 +4285,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2244:42:11", + "src": "2246:42:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2229:57:11", + "src": "2231:57:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1698, + "id": 2430, "nodeType": "ExpressionStatement", - "src": "2229:57:11" + "src": "2231:57:20" }, { "expression": { @@ -4368,12 +4310,12 @@ "arguments": [ { "argumentTypes": null, - "id": 1704, + "id": 2436, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, - "src": "2338:12:11", + "referencedDeclaration": 2400, + "src": "2340:12:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4392,14 +4334,14 @@ "arguments": [ { "argumentTypes": null, - "id": 1701, + "id": 2433, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 616, - "src": "2321:7:11", + "referencedDeclaration": 697, + "src": "2323:7:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } } @@ -4407,22 +4349,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ModuleManager_$1022", + "typeIdentifier": "t_contract$_ModuleManager_$1103", "typeString": "contract ModuleManager" } ], - "id": 1700, + "id": 2432, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1432, - "src": "2308:12:11", + "referencedDeclaration": 1511, + "src": "2310:12:20", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1432_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1511_$", "typeString": "type(contract OwnerManager)" } }, - "id": 1702, + "id": 2434, "isConstant": false, "isLValue": false, "isPure": false, @@ -4430,27 +4372,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2308:21:11", + "src": "2310:21:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1432", + "typeIdentifier": "t_contract$_OwnerManager_$1511", "typeString": "contract OwnerManager" } }, - "id": 1703, + "id": 2435, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1382, - "src": "2308:29:11", + "referencedDeclaration": 1461, + "src": "2310:29:20", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 1705, + "id": 2437, "isConstant": false, "isLValue": false, "isPure": false, @@ -4458,7 +4400,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2308:43:11", + "src": "2310:43:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4467,14 +4409,14 @@ { "argumentTypes": null, "hexValue": "5369676e6174757265206e6f742070726f7669646564206279206f776e6572", - "id": 1706, + "id": 2438, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2353:33:11", + "src": "2355:33:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_09247dae670daab7cf1923d3334eea07c14df3c0a8f5233960935c63f47104a9", @@ -4494,21 +4436,21 @@ "typeString": "literal_string \"Signature not provided by owner\"" } ], - "id": 1699, + "id": 2431, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2300:7:11", + "referencedDeclaration": 2663, + "src": "2302:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1707, + "id": 2439, "isConstant": false, "isLValue": false, "isPure": false, @@ -4516,15 +4458,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2300:87:11", + "src": "2302:87:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1708, + "id": 2440, "nodeType": "ExpressionStatement", - "src": "2300:87:11" + "src": "2302:87:20" }, { "expression": { @@ -4536,19 +4478,19 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 1712, + "id": 2444, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1710, + "id": 2442, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, - "src": "2409:12:11", + "referencedDeclaration": 2400, + "src": "2411:12:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4558,18 +4500,18 @@ "operator": ">", "rightExpression": { "argumentTypes": null, - "id": 1711, + "id": 2443, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1662, - "src": "2424:9:11", + "referencedDeclaration": 2394, + "src": "2426:9:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2409:24:11", + "src": "2411:24:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -4578,14 +4520,14 @@ { "argumentTypes": null, "hexValue": "5369676e61747572657320617265206e6f74206f726465726564206279206f776e65722061646472657373", - "id": 1713, + "id": 2445, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "2435:45:11", + "src": "2437:45:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_597a123a1bc14bc9690387ae0fec99721cc18eefa85fa2531a7593a762444235", @@ -4605,21 +4547,21 @@ "typeString": "literal_string \"Signatures are not ordered by owner address\"" } ], - "id": 1709, + "id": 2441, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 1776, - 1777 + 2662, + 2663 ], - "referencedDeclaration": 1777, - "src": "2401:7:11", + "referencedDeclaration": 2663, + "src": "2403:7:20", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1714, + "id": 2446, "isConstant": false, "isLValue": false, "isPure": false, @@ -4627,32 +4569,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2401:80:11", + "src": "2403:80:20", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1715, + "id": 2447, "nodeType": "ExpressionStatement", - "src": "2401:80:11" + "src": "2403:80:20" }, { "expression": { "argumentTypes": null, - "id": 1718, + "id": 2450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1716, + "id": 2448, "name": "lastOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1662, - "src": "2495:9:11", + "referencedDeclaration": 2394, + "src": "2497:9:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -4662,26 +4604,26 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 1717, + "id": 2449, "name": "currentOwner", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, - "src": "2507:12:11", + "referencedDeclaration": 2400, + "src": "2509:12:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "2495:24:11", + "src": "2497:24:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 1719, + "id": 2451, "nodeType": "ExpressionStatement", - "src": "2495:24:11" + "src": "2497:24:20" } ] }, @@ -4691,19 +4633,19 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1687, + "id": 2419, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 1685, + "id": 2417, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1671, - "src": "2195:1:11", + "referencedDeclaration": 2403, + "src": "2197:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4713,40 +4655,40 @@ "operator": "<", "rightExpression": { "argumentTypes": null, - "id": 1686, + "id": 2418, "name": "threshold", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1674, - "src": "2199:9:11", + "referencedDeclaration": 2406, + "src": "2201:9:20", "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_uint256", + "typeString": "uint256" } }, - "src": "2195:13:11", + "src": "2197:13:20", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1721, + "id": 2453, "initializationExpression": { "expression": { "argumentTypes": null, - "id": 1683, + "id": 2415, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 1681, + "id": 2413, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1671, - "src": "2188:1:11", + "referencedDeclaration": 2403, + "src": "2190:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4757,14 +4699,14 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "30", - "id": 1682, + "id": 2414, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2192:1:11", + "src": "2194:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4772,20 +4714,20 @@ }, "value": "0" }, - "src": "2188:5:11", + "src": "2190:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 1684, + "id": 2416, "nodeType": "ExpressionStatement", - "src": "2188:5:11" + "src": "2190:5:20" }, "loopExpression": { "expression": { "argumentTypes": null, - "id": 1689, + "id": 2421, "isConstant": false, "isLValue": false, "isPure": false, @@ -4793,15 +4735,15 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2210:3:11", + "src": "2212:3:20", "subExpression": { "argumentTypes": null, - "id": 1688, + "id": 2420, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1671, - "src": "2210:1:11", + "referencedDeclaration": 2403, + "src": "2212:1:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -4812,17 +4754,17 @@ "typeString": "uint256" } }, - "id": 1690, + "id": 2422, "nodeType": "ExpressionStatement", - "src": "2210:3:11" + "src": "2212:3:20" }, "nodeType": "ForStatement", - "src": "2183:347:11" + "src": "2185:347:20" } ] }, "documentation": null, - "id": 1723, + "id": 2455, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -4830,16 +4772,16 @@ "name": "checkHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 1659, + "id": 2391, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1656, + "id": 2388, "name": "transactionHash", "nodeType": "VariableDeclaration", - "scope": 1723, - "src": "1849:23:11", + "scope": 2455, + "src": "1849:23:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4847,10 +4789,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1655, + "id": 2387, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "1849:7:11", + "src": "1849:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -4861,11 +4803,11 @@ }, { "constant": false, - "id": 1658, + "id": 2390, "name": "signatures", "nodeType": "VariableDeclaration", - "scope": 1723, - "src": "1874:16:11", + "scope": 2455, + "src": "1874:16:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -4873,10 +4815,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1657, + "id": 2389, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "1874:5:11", + "src": "1874:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -4886,26 +4828,26 @@ "visibility": "internal" } ], - "src": "1848:43:11" + "src": "1848:43:20" }, "payable": false, "returnParameters": { - "id": 1660, + "id": 2392, "nodeType": "ParameterList", "parameters": [], - "src": "1926:0:11" + "src": "1926:0:20" }, - "scope": 1758, - "src": "1830:706:11", + "scope": 2490, + "src": "1830:708:20", "stateMutability": "view", "superFunction": null, "visibility": "internal" }, { "body": { - "id": 1756, + "id": 2488, "nodeType": "Block", - "src": "3030:113:11", + "src": "3032:113:20", "statements": [ { "expression": { @@ -4920,14 +4862,14 @@ { "argumentTypes": null, "hexValue": "30783139", - "id": 1742, + "id": 2474, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3079:4:11", + "src": "3081:4:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_25_by_1", @@ -4943,20 +4885,20 @@ "typeString": "int_const 25" } ], - "id": 1741, + "id": 2473, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3074:4:11", + "src": "3076:4:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 1743, + "id": 2475, "isConstant": false, "isLValue": false, "isPure": true, @@ -4964,7 +4906,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3074:10:11", + "src": "3076:10:20", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -4976,14 +4918,14 @@ { "argumentTypes": null, "hexValue": "30", - "id": 1745, + "id": 2477, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3091:1:11", + "src": "3093:1:20", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", @@ -4999,20 +4941,20 @@ "typeString": "int_const 0" } ], - "id": 1744, + "id": 2476, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "3086:4:11", + "src": "3088:4:20", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes1_$", "typeString": "type(bytes1)" }, "typeName": "byte" }, - "id": 1746, + "id": 2478, "isConstant": false, "isLValue": false, "isPure": true, @@ -5020,7 +4962,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3086:7:11", + "src": "3088:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes1", "typeString": "bytes1" @@ -5028,25 +4970,25 @@ }, { "argumentTypes": null, - "id": 1747, + "id": 2479, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1808, - "src": "3095:4:11", + "referencedDeclaration": 2712, + "src": "3097:4:20", "typeDescriptions": { - "typeIdentifier": "t_contract$_StateChannelModule_$1758", + "typeIdentifier": "t_contract$_StateChannelModule_$2490", "typeString": "contract StateChannelModule" } }, { "argumentTypes": null, - "id": 1748, + "id": 2480, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1725, - "src": "3101:2:11", + "referencedDeclaration": 2457, + "src": "3103:2:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5054,12 +4996,12 @@ }, { "argumentTypes": null, - "id": 1749, + "id": 2481, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1727, - "src": "3105:5:11", + "referencedDeclaration": 2459, + "src": "3107:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5067,12 +5009,12 @@ }, { "argumentTypes": null, - "id": 1750, + "id": 2482, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "3112:4:11", + "referencedDeclaration": 2461, + "src": "3114:4:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5080,25 +5022,25 @@ }, { "argumentTypes": null, - "id": 1751, + "id": 2483, "name": "operation", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1731, - "src": "3118:9:11", + "referencedDeclaration": 2463, + "src": "3120:9:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, { "argumentTypes": null, - "id": 1752, + "id": 2484, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1733, - "src": "3129:5:11", + "referencedDeclaration": 2465, + "src": "3131:5:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5116,7 +5058,7 @@ "typeString": "bytes1" }, { - "typeIdentifier": "t_contract$_StateChannelModule_$1758", + "typeIdentifier": "t_contract$_StateChannelModule_$2490", "typeString": "contract StateChannelModule" }, { @@ -5132,7 +5074,7 @@ "typeString": "bytes memory" }, { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, { @@ -5142,18 +5084,18 @@ ], "expression": { "argumentTypes": null, - "id": 1739, + "id": 2471, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1760, - "src": "3057:3:11", + "referencedDeclaration": 2646, + "src": "3059:3:20", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, - "id": 1740, + "id": 2472, "isConstant": false, "isLValue": false, "isPure": true, @@ -5161,13 +5103,13 @@ "memberName": "encodePacked", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "3057:16:11", + "src": "3059:16:20", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1753, + "id": 2485, "isConstant": false, "isLValue": false, "isPure": false, @@ -5175,7 +5117,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3057:78:11", + "src": "3059:78:20", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -5189,18 +5131,18 @@ "typeString": "bytes memory" } ], - "id": 1738, + "id": 2470, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1767, - "src": "3047:9:11", + "referencedDeclaration": 2653, + "src": "3049:9:20", "typeDescriptions": { "typeIdentifier": "t_function_sha3_pure$__$returns$_t_bytes32_$", "typeString": "function () pure returns (bytes32)" } }, - "id": 1754, + "id": 2486, "isConstant": false, "isLValue": false, "isPure": false, @@ -5208,21 +5150,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3047:89:11", + "src": "3049:89:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 1737, - "id": 1755, + "functionReturnParameters": 2469, + "id": 2487, "nodeType": "Return", - "src": "3040:96:11" + "src": "3042:96:20" } ] }, "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": 1757, + "id": 2489, "implemented": true, "isConstructor": false, "isDeclaredConst": true, @@ -5230,16 +5172,16 @@ "name": "getTransactionHash", "nodeType": "FunctionDefinition", "parameters": { - "id": 1734, + "id": 2466, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1725, + "id": 2457, "name": "to", "nodeType": "VariableDeclaration", - "scope": 1757, - "src": "2851:10:11", + "scope": 2489, + "src": "2853:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5247,10 +5189,10 @@ "typeString": "address" }, "typeName": { - "id": 1724, + "id": 2456, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2851:7:11", + "src": "2853:7:20", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -5261,11 +5203,11 @@ }, { "constant": false, - "id": 1727, + "id": 2459, "name": "value", "nodeType": "VariableDeclaration", - "scope": 1757, - "src": "2872:13:11", + "scope": 2489, + "src": "2874:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5273,10 +5215,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1726, + "id": 2458, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2872:7:11", + "src": "2874:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5287,11 +5229,11 @@ }, { "constant": false, - "id": 1729, + "id": 2461, "name": "data", "nodeType": "VariableDeclaration", - "scope": 1757, - "src": "2896:10:11", + "scope": 2489, + "src": "2898:10:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5299,10 +5241,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1728, + "id": 2460, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2896:5:11", + "src": "2898:5:20", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -5313,26 +5255,26 @@ }, { "constant": false, - "id": 1731, + "id": 2463, "name": "operation", "nodeType": "VariableDeclaration", - "scope": 1757, - "src": "2917:24:11", + "scope": 2489, + "src": "2919:24:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" }, "typeName": { "contractScope": null, - "id": 1730, + "id": 2462, "name": "Enum.Operation", "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5, - "src": "2917:14:11", + "referencedDeclaration": 29, + "src": "2919:14:20", "typeDescriptions": { - "typeIdentifier": "t_enum$_Operation_$5", + "typeIdentifier": "t_enum$_Operation_$29", "typeString": "enum Enum.Operation" } }, @@ -5341,11 +5283,11 @@ }, { "constant": false, - "id": 1733, + "id": 2465, "name": "nonce", "nodeType": "VariableDeclaration", - "scope": 1757, - "src": "2952:13:11", + "scope": 2489, + "src": "2954:13:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5353,10 +5295,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1732, + "id": 2464, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2952:7:11", + "src": "2954:7:20", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -5366,20 +5308,20 @@ "visibility": "internal" } ], - "src": "2841:130:11" + "src": "2843:130:20" }, "payable": false, "returnParameters": { - "id": 1737, + "id": 2469, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1736, + "id": 2468, "name": "", "nodeType": "VariableDeclaration", - "scope": 1757, - "src": "3017:7:11", + "scope": 2489, + "src": "3019:7:20", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -5387,10 +5329,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1735, + "id": 2467, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3017:7:11", + "src": "3019:7:20", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -5400,105 +5342,33 @@ "visibility": "internal" } ], - "src": "3016:9:11" + "src": "3018:9:20" }, - "scope": 1758, - "src": "2814:329:11", + "scope": 2490, + "src": "2816:329:20", "stateMutability": "view", "superFunction": null, "visibility": "public" } ], - "scope": 1759, - "src": "305:2840:11" + "scope": 2491, + "src": "305:2842:20" } ], - "src": "0:3146:11" + "src": "0:3148:20" }, "compiler": { "name": "solc", "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { - "4": { + "1530197641790": { "events": {}, "links": {}, - "address": "0x42fea1604cd7ef086c3b66cf894ef119577781dd", - "transactionHash": "0x602c4524b17d13760b0a3a654b1b21106c58a9f7b43f892134e7324282896591" - }, - "1529327661534": { - "events": {}, - "links": {}, - "address": "0xe0f79845711e5219da7a715f8cce36a3be1439ac", - "transactionHash": "0x27b038572cc641a10411f264708adfddf405923c31ae1a9bfaa3323e68f0cd8e" - }, - "1529333415702": { - "events": {}, - "links": {}, - "address": "0x437ca411c1aa04e6012dbe1ac8cd0ccc87c1e6d9", - "transactionHash": "0xe7066b0fd7695e7e5956681c536759a36839b507de3a4fde6509dab7c6d9b152" - }, - "1529652204341": { - "events": {}, - "links": {}, - "address": "0xcda1de5ecadaf89d663ed589a615e0ba8d697d3d", - "transactionHash": "0xcc681aa2ad918c4a255559fa45f9c64405ce4064db091ce1d7749bf3e6f05899" - }, - "1529931780812": { - "events": {}, - "links": {}, - "address": "0x8493a03e3697836378bc2653cb40aed783dfc56b", - "transactionHash": "0xcc681aa2ad918c4a255559fa45f9c64405ce4064db091ce1d7749bf3e6f05899" - }, - "1529933005377": { - "events": {}, - "links": {}, - "address": "0xf06081b8c3b91b18193447c1060927c4dfd2d771", - "transactionHash": "0xcc681aa2ad918c4a255559fa45f9c64405ce4064db091ce1d7749bf3e6f05899" - }, - "1529934931891": { - "events": {}, - "links": {}, - "address": "0xacf52b8228609eed6b901bfda7f30483334264c6", - "transactionHash": "0xcc681aa2ad918c4a255559fa45f9c64405ce4064db091ce1d7749bf3e6f05899" - }, - "1529935355957": { - "events": {}, - "links": {}, - "address": "0x667ddbf8d216e9efbf979a4b9f10067fbcf70ede", - "transactionHash": "0xcc681aa2ad918c4a255559fa45f9c64405ce4064db091ce1d7749bf3e6f05899" - }, - "1529936204222": { - "events": {}, - "links": {}, - "address": "0x0ac402d3bb30d62e8ceca58ecf774d404aad8e68", - "transactionHash": "0xcc681aa2ad918c4a255559fa45f9c64405ce4064db091ce1d7749bf3e6f05899" - }, - "1529937280871": { - "events": {}, - "links": {}, - "address": "0xfecaf2a802adc4a0812964c9396c7cf2daf9d221", - "transactionHash": "0xcc681aa2ad918c4a255559fa45f9c64405ce4064db091ce1d7749bf3e6f05899" - }, - "1529937637076": { - "events": {}, - "links": {}, - "address": "0xa2411a84e467e0d76959de0222086ebe414c28a0", - "transactionHash": "0xcc681aa2ad918c4a255559fa45f9c64405ce4064db091ce1d7749bf3e6f05899" - }, - "1529937890676": { - "events": {}, - "links": {}, - "address": "0xf37ed34328e8b4792a6ff33bfd754aef3008e736", - "transactionHash": "0xcc681aa2ad918c4a255559fa45f9c64405ce4064db091ce1d7749bf3e6f05899" - }, - "1530013596495": { - "events": {}, - "links": {}, - "address": "0x50a827d16516835a9b89fdfb4764a962b8814ecf", - "transactionHash": "0xcc681aa2ad918c4a255559fa45f9c64405ce4064db091ce1d7749bf3e6f05899" + "address": "0x54ad3e14971d6181fc4d8bb4f5a88998e993b214", + "transactionHash": "0x37ea7ca58f05bb012131b7865cd31aa3843519072b43a2784a6cc84aaaaaa533" } }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-26T11:47:04.122Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:58.240Z" } \ No newline at end of file diff --git a/safe-contracts/build/contracts/WhitelistModule.json b/safe-contracts/build/contracts/WhitelistModule.json index af7e8764..ecf381f1 100644 --- a/safe-contracts/build/contracts/WhitelistModule.json +++ b/safe-contracts/build/contracts/WhitelistModule.json @@ -146,8 +146,8 @@ "type": "function" } ], - "bytecode": "0x608060405234801561001057600080fd5b50611248806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a72305820dd944d1950617a0d837e1ab02a0fe81721a2e32aac404e122496a0af8b3397d40029", - "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a72305820dd944d1950617a0d837e1ab02a0fe81721a2e32aac404e122496a0af8b3397d40029", + "bytecode": "0x608060405234801561001057600080fd5b50611248806100206000396000f300608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a72305820f7b0f6c9f5aa10563d61c2ce71381d314dc3d82b86d273bfaa866fc47b976f7a0029", + "deployedBytecode": "0x608060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f2f3be11461009e5780633af32abf14610149578063481c6a75146101a45780637de7edef146101fb5780638ab1d6811461023e578063a3f4df7e14610281578063bd5b853b14610311578063e43252d714610377578063ffa1ad74146103ba575b600080fd5b3480156100aa57600080fd5b5061012f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f016020809104026020016040519081016040528093929190818152602001838380828437820191505050505050919291929050505061044a565b604051808215151515815260200191505060405180910390f35b34801561015557600080fd5b5061018a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108c4565b604051808215151515815260200191505060405180910390f35b3480156101b057600080fd5b506101b96108e4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561020757600080fd5b5061023c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061090a565b005b34801561024a57600080fd5b5061027f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610aed565b005b34801561028d57600080fd5b50610296610cf4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102d65780820151818401526020810190506102bb565b50505050905090810190601f1680156103035780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561031d57600080fd5b5061037560048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050610d2d565b005b34801561038357600080fd5b506103b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e59565b005b3480156103c657600080fd5b506103cf6110f0565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561040f5780820151818401526020810190506103f4565b50505050905090810190601f16801561043c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b15801561050957600080fd5b505af115801561051d573d6000803e3d6000fd5b505050506040513d602081101561053357600080fd5b810190808051906020019092919050505015156105de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e2081526020017f6f776e657200000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615156106c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f546172676574206163636f756e74206973206e6f742077686974656c6973746581526020017f640000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663468721a785858560006040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183600281111561077f57fe5b60ff168152602001828103825284818151815260200191508051906020019080838360005b838110156107bf5780820151818401526020810190506107a4565b50505050905090810190601f1680156107ec5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561080e57600080fd5b505af1158015610822573d6000803e3d6000fd5b505050506040513d602081101561083857600080fd5b810190808051906020019092919050505015156108bd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f436f756c64206e6f742065786563757465207472616e73616374696f6e00000081525060200191505060405180910390fd5b9392505050565b60026020528060005260406000206000915054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610aaa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f496e76616c6964206d617374657220636f707920616464726573732070726f7681526020017f696465640000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610bd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610c99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4163636f756e74206973206e6f742077686974656c697374656400000000000081525060200191505060405180910390fd5b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280601081526020017f57686974656c697374204d6f64756c650000000000000000000000000000000081525081565b600080610d38611129565b600091505b8251821015610e54578282815181101515610d5457fe5b90602001906020020151905060008173ffffffffffffffffffffffffffffffffffffffff1614151515610def576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508180600101925050610d3d565b505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610f44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001807f4d6574686f642063616e206f6e6c792062652063616c6c65642066726f6d206d81526020017f616e61676572000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1614151515610fd3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f496e76616c6964206163636f756e742070726f7669646564000000000000000081525060200191505060405180910390fd5b600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611095576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4163636f756e7420697320616c72656164792077686974656c6973746564000081525060200191505060405180910390fd5b6001600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6040805190810160405280600581526020017f302e302e3100000000000000000000000000000000000000000000000000000081525081565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156111d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d616e616765722068617320616c7265616479206265656e207365740000000081525060200191505060405180910390fd5b33600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505600a165627a7a72305820f7b0f6c9f5aa10563d61c2ce71381d314dc3d82b86d273bfaa866fc47b976f7a0029", "sourceMap": "289:2199:21:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;289:2199:21;;;;;;;", "deployedSourceMap": "289:2199:21:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:502;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1984:502:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;498:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;498:46:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;262:28:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:28:7;;;;;;;;;;;;;;;;;;;;;;;;;;;626:248:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;626:248:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;1528:202:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1528:202:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;331:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;331:48:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;667:298;;8:9:-1;5:2;;;30:1;27;20:12;5:2;667:298:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1114:260;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1114:260:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;385:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;385:40:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:502;2083:4;2213:7;;;;;;;;;;;2200:29;;;2230:10;2200:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2200:41:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2200:41:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2200:41:21;;;;;;;;;;;;;;;;2192:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2301:13;:17;2315:2;2301:17;;;;;;;;;;;;;;;;;;;;;;;;;2293:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2374:7;;;;;;;;;;;:33;;;2408:2;2412:5;2419:4;2425:19;2374: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;2374:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2374:71:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2374:71:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2374:71:21;;;;;;;;;;;;;;;;2366:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1984:502;;;;;:::o;498:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;262:28:7:-;;;;;;;;;;;;;:::o;626:248:5:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:1:5;776:11;:16;;;;768:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;856:11;843:10;;:24;;;;;;;;;;;;;;;;;;626:248;:::o;1528:202:21:-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1630:13:21;:22;1644:7;1630:22;;;;;;;;;;;;;;;;;;;;;;;;;1622:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1718:5;1693:13;:22;1707:7;1693:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1528:202;:::o;331:48::-;;;;;;;;;;;;;;;;;;;;:::o;667:298::-;758:9;813:15;731:12;:10;:12::i;:::-;770:1;758:13;;753:206;777:8;:15;773:1;:19;753:206;;;831:8;840:1;831:11;;;;;;;;;;;;;;;;;;813:29;;875:1;864:7;:12;;;;856:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;944:4;919:13;:22;933:7;919:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;794:3;;;;;;;753:206;;;667:298;;;:::o;1114:260::-;359:7:7;;;;;;;;;;;337:30;;:10;:30;;;329:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1222:1:21;1211:7;:12;;;;1203:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1271:13;:22;1285:7;1271:22;;;;;;;;;;;;;;;;;;;;;;;;;1270:23;1262:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1363:4;1338:13;:22;1352:7;1338:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1114:260;:::o;385:40::-;;;;;;;;;;;;;;;;;;;;:::o;434:300:7:-;648:1;636:7;;;;;;;;;;;628:21;;;620:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;716:10;692:7;;:35;;;;;;;;;;;;;;;;;;434:300::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, \"Invalid account provided\");\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, \"Invalid account provided\");\n require(!isWhitelisted[account], \"Account is already whitelisted\");\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], \"Account is not whitelisted\");\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), \"Method can only be called by an owner\");\n require(isWhitelisted[to], \"Target account is not whitelisted\");\n require(manager.execTransactionFromModule(to, value, data, Enum.Operation.Call), \"Could not execute transaction\");\n }\n}\n", @@ -156,14 +156,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", "exportedSymbols": { "WhitelistModule": [ - 2685 + 2644 ] }, - "id": 2686, + "id": 2645, "nodeType": "SourceUnit", "nodes": [ { - "id": 2533, + "id": 2492, "literals": [ "solidity", "0.4", @@ -175,9 +175,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 2534, + "id": 2493, "nodeType": "ImportDirective", - "scope": 2686, + "scope": 2645, "sourceUnit": 31, "src": "24:21:21", "symbolAliases": [], @@ -186,9 +186,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 2535, + "id": 2494, "nodeType": "ImportDirective", - "scope": 2686, + "scope": 2645, "sourceUnit": 733, "src": "46:23:21", "symbolAliases": [], @@ -197,9 +197,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 2536, + "id": 2495, "nodeType": "ImportDirective", - "scope": 2686, + "scope": 2645, "sourceUnit": 1104, "src": "70:30:21", "symbolAliases": [], @@ -208,10 +208,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 2537, + "id": 2496, "nodeType": "ImportDirective", - "scope": 2686, - "sourceUnit": 1514, + "scope": 2645, + "sourceUnit": 1512, "src": "101:29:21", "symbolAliases": [], "unitAlias": "" @@ -222,7 +222,7 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2538, + "id": 2497, "name": "Module", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 732, @@ -232,7 +232,7 @@ "typeString": "contract Module" } }, - "id": 2539, + "id": 2498, "nodeType": "InheritanceSpecifier", "src": "317:6:21" } @@ -240,27 +240,27 @@ "contractDependencies": [ 632, 732, - 1663 + 1688 ], "contractKind": "contract", "documentation": "@title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n @author Stefan George - ", "fullyImplemented": true, - "id": 2685, + "id": 2644, "linearizedBaseContracts": [ - 2685, + 2644, 732, 632, - 1663 + 1688 ], "name": "WhitelistModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2542, + "id": 2501, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2685, + "scope": 2644, "src": "331:48:21", "stateVariable": true, "storageLocation": "default", @@ -269,7 +269,7 @@ "typeString": "string" }, "typeName": { - "id": 2540, + "id": 2499, "name": "string", "nodeType": "ElementaryTypeName", "src": "331:6:21", @@ -281,7 +281,7 @@ "value": { "argumentTypes": null, "hexValue": "57686974656c697374204d6f64756c65", - "id": 2541, + "id": 2500, "isConstant": false, "isLValue": false, "isPure": true, @@ -300,10 +300,10 @@ }, { "constant": true, - "id": 2545, + "id": 2504, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2685, + "scope": 2644, "src": "385:40:21", "stateVariable": true, "storageLocation": "default", @@ -312,7 +312,7 @@ "typeString": "string" }, "typeName": { - "id": 2543, + "id": 2502, "name": "string", "nodeType": "ElementaryTypeName", "src": "385:6:21", @@ -324,7 +324,7 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 2544, + "id": 2503, "isConstant": false, "isLValue": false, "isPure": true, @@ -343,10 +343,10 @@ }, { "constant": false, - "id": 2549, + "id": 2508, "name": "isWhitelisted", "nodeType": "VariableDeclaration", - "scope": 2685, + "scope": 2644, "src": "498:46:21", "stateVariable": true, "storageLocation": "default", @@ -355,9 +355,9 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 2548, + "id": 2507, "keyType": { - "id": 2546, + "id": 2505, "name": "address", "nodeType": "ElementaryTypeName", "src": "507:7:21", @@ -373,7 +373,7 @@ "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2547, + "id": 2506, "name": "bool", "nodeType": "ElementaryTypeName", "src": "518:4:21", @@ -388,7 +388,7 @@ }, { "body": { - "id": 2590, + "id": 2549, "nodeType": "Block", "src": "721:244:21", "statements": [ @@ -398,7 +398,7 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2555, + "id": 2514, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -409,7 +409,7 @@ "typeString": "function ()" } }, - "id": 2556, + "id": 2515, "isConstant": false, "isLValue": false, "isPure": false, @@ -423,27 +423,27 @@ "typeString": "tuple()" } }, - "id": 2557, + "id": 2516, "nodeType": "ExpressionStatement", "src": "731:12:21" }, { "body": { - "id": 2588, + "id": 2547, "nodeType": "Block", "src": "799:160:21", "statements": [ { "assignments": [ - 2570 + 2529 ], "declarations": [ { "constant": false, - "id": 2570, + "id": 2529, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2591, + "scope": 2550, "src": "813:15:21", "stateVariable": false, "storageLocation": "default", @@ -452,7 +452,7 @@ "typeString": "address" }, "typeName": { - "id": 2569, + "id": 2528, "name": "address", "nodeType": "ElementaryTypeName", "src": "813:7:21", @@ -465,30 +465,30 @@ "visibility": "internal" } ], - "id": 2574, + "id": 2533, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2571, + "id": 2530, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2552, + "referencedDeclaration": 2511, "src": "831:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2573, + "id": 2532, "indexExpression": { "argumentTypes": null, - "id": 2572, + "id": 2531, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2559, + "referencedDeclaration": 2518, "src": "840:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -519,18 +519,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2578, + "id": 2537, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2576, + "id": 2535, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, + "referencedDeclaration": 2529, "src": "864:7:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -542,7 +542,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2577, + "id": 2536, "isConstant": false, "isLValue": false, "isPure": true, @@ -566,7 +566,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2579, + "id": 2538, "isConstant": false, "isLValue": false, "isPure": true, @@ -593,21 +593,21 @@ "typeString": "literal_string \"Invalid account provided\"" } ], - "id": 2575, + "id": 2534, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "856:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2580, + "id": 2539, "isConstant": false, "isLValue": false, "isPure": false, @@ -621,14 +621,14 @@ "typeString": "tuple()" } }, - "id": 2581, + "id": 2540, "nodeType": "ExpressionStatement", "src": "856:49:21" }, { "expression": { "argumentTypes": null, - "id": 2586, + "id": 2545, "isConstant": false, "isLValue": false, "isPure": false, @@ -637,25 +637,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2582, + "id": 2541, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2549, + "referencedDeclaration": 2508, "src": "919:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2584, + "id": 2543, "indexExpression": { "argumentTypes": null, - "id": 2583, + "id": 2542, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, + "referencedDeclaration": 2529, "src": "933:7:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -678,7 +678,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2585, + "id": 2544, "isConstant": false, "isLValue": false, "isPure": true, @@ -699,7 +699,7 @@ "typeString": "bool" } }, - "id": 2587, + "id": 2546, "nodeType": "ExpressionStatement", "src": "919:29:21" } @@ -711,18 +711,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2565, + "id": 2524, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2562, + "id": 2521, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2559, + "referencedDeclaration": 2518, "src": "773:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -735,18 +735,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2563, + "id": 2522, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2552, + "referencedDeclaration": 2511, "src": "777:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2564, + "id": 2523, "isConstant": false, "isLValue": false, "isPure": false, @@ -766,18 +766,18 @@ "typeString": "bool" } }, - "id": 2589, + "id": 2548, "initializationExpression": { "assignments": [ - 2559 + 2518 ], "declarations": [ { "constant": false, - "id": 2559, + "id": 2518, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2591, + "scope": 2550, "src": "758:9:21", "stateVariable": false, "storageLocation": "default", @@ -786,7 +786,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2558, + "id": 2517, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "758:7:21", @@ -799,11 +799,11 @@ "visibility": "internal" } ], - "id": 2561, + "id": 2520, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2560, + "id": 2519, "isConstant": false, "isLValue": false, "isPure": true, @@ -824,7 +824,7 @@ "loopExpression": { "expression": { "argumentTypes": null, - "id": 2567, + "id": 2526, "isConstant": false, "isLValue": false, "isPure": false, @@ -835,11 +835,11 @@ "src": "794:3:21", "subExpression": { "argumentTypes": null, - "id": 2566, + "id": 2525, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2559, + "referencedDeclaration": 2518, "src": "794:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -851,7 +851,7 @@ "typeString": "uint256" } }, - "id": 2568, + "id": 2527, "nodeType": "ExpressionStatement", "src": "794:3:21" }, @@ -861,7 +861,7 @@ ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param accounts List of whitelisted accounts.", - "id": 2591, + "id": 2550, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -869,15 +869,15 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2553, + "id": 2512, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2552, + "id": 2511, "name": "accounts", "nodeType": "VariableDeclaration", - "scope": 2591, + "scope": 2550, "src": "682:18:21", "stateVariable": false, "storageLocation": "default", @@ -887,7 +887,7 @@ }, "typeName": { "baseType": { - "id": 2550, + "id": 2509, "name": "address", "nodeType": "ElementaryTypeName", "src": "682:7:21", @@ -896,7 +896,7 @@ "typeString": "address" } }, - "id": 2551, + "id": 2510, "length": null, "nodeType": "ArrayTypeName", "src": "682:9:21", @@ -913,12 +913,12 @@ }, "payable": false, "returnParameters": { - "id": 2554, + "id": 2513, "nodeType": "ParameterList", "parameters": [], "src": "721:0:21" }, - "scope": 2685, + "scope": 2644, "src": "667:298:21", "stateMutability": "nonpayable", "superFunction": null, @@ -926,7 +926,7 @@ }, { "body": { - "id": 2619, + "id": 2578, "nodeType": "Block", "src": "1193:181:21", "statements": [ @@ -940,18 +940,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2601, + "id": 2560, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2599, + "id": 2558, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2593, + "referencedDeclaration": 2552, "src": "1211:7:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -963,7 +963,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2600, + "id": 2559, "isConstant": false, "isLValue": false, "isPure": true, @@ -987,7 +987,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2602, + "id": 2561, "isConstant": false, "isLValue": false, "isPure": true, @@ -1014,21 +1014,21 @@ "typeString": "literal_string \"Invalid account provided\"" } ], - "id": 2598, + "id": 2557, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "1203:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2603, + "id": 2562, "isConstant": false, "isLValue": false, "isPure": false, @@ -1042,7 +1042,7 @@ "typeString": "tuple()" } }, - "id": 2604, + "id": 2563, "nodeType": "ExpressionStatement", "src": "1203:49:21" }, @@ -1052,7 +1052,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2609, + "id": 2568, "isConstant": false, "isLValue": false, "isPure": false, @@ -1065,25 +1065,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2606, + "id": 2565, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2549, + "referencedDeclaration": 2508, "src": "1271:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2608, + "id": 2567, "indexExpression": { "argumentTypes": null, - "id": 2607, + "id": 2566, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2593, + "referencedDeclaration": 2552, "src": "1285:7:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1109,7 +1109,7 @@ { "argumentTypes": null, "hexValue": "4163636f756e7420697320616c72656164792077686974656c6973746564", - "id": 2610, + "id": 2569, "isConstant": false, "isLValue": false, "isPure": true, @@ -1136,21 +1136,21 @@ "typeString": "literal_string \"Account is already whitelisted\"" } ], - "id": 2605, + "id": 2564, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "1262:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2611, + "id": 2570, "isConstant": false, "isLValue": false, "isPure": false, @@ -1164,14 +1164,14 @@ "typeString": "tuple()" } }, - "id": 2612, + "id": 2571, "nodeType": "ExpressionStatement", "src": "1262:66:21" }, { "expression": { "argumentTypes": null, - "id": 2617, + "id": 2576, "isConstant": false, "isLValue": false, "isPure": false, @@ -1180,25 +1180,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2613, + "id": 2572, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2549, + "referencedDeclaration": 2508, "src": "1338:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2615, + "id": 2574, "indexExpression": { "argumentTypes": null, - "id": 2614, + "id": 2573, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2593, + "referencedDeclaration": 2552, "src": "1352:7:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1221,7 +1221,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2616, + "id": 2575, "isConstant": false, "isLValue": false, "isPure": true, @@ -1242,24 +1242,24 @@ "typeString": "bool" } }, - "id": 2618, + "id": 2577, "nodeType": "ExpressionStatement", "src": "1338:29:21" } ] }, "documentation": "@dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 2620, + "id": 2579, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2596, + "id": 2555, "modifierName": { "argumentTypes": null, - "id": 2595, + "id": 2554, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1277,15 +1277,15 @@ "name": "addToWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 2594, + "id": 2553, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2593, + "id": 2552, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2620, + "scope": 2579, "src": "1138:15:21", "stateVariable": false, "storageLocation": "default", @@ -1294,7 +1294,7 @@ "typeString": "address" }, "typeName": { - "id": 2592, + "id": 2551, "name": "address", "nodeType": "ElementaryTypeName", "src": "1138:7:21", @@ -1311,12 +1311,12 @@ }, "payable": false, "returnParameters": { - "id": 2597, + "id": 2556, "nodeType": "ParameterList", "parameters": [], "src": "1193:0:21" }, - "scope": 2685, + "scope": 2644, "src": "1114:260:21", "stateMutability": "nonpayable", "superFunction": null, @@ -1324,7 +1324,7 @@ }, { "body": { - "id": 2640, + "id": 2599, "nodeType": "Block", "src": "1612:118:21", "statements": [ @@ -1336,25 +1336,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2628, + "id": 2587, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2549, + "referencedDeclaration": 2508, "src": "1630:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2630, + "id": 2589, "indexExpression": { "argumentTypes": null, - "id": 2629, + "id": 2588, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2622, + "referencedDeclaration": 2581, "src": "1644:7:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1375,7 +1375,7 @@ { "argumentTypes": null, "hexValue": "4163636f756e74206973206e6f742077686974656c6973746564", - "id": 2631, + "id": 2590, "isConstant": false, "isLValue": false, "isPure": true, @@ -1402,21 +1402,21 @@ "typeString": "literal_string \"Account is not whitelisted\"" } ], - "id": 2627, + "id": 2586, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "1622:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2632, + "id": 2591, "isConstant": false, "isLValue": false, "isPure": false, @@ -1430,14 +1430,14 @@ "typeString": "tuple()" } }, - "id": 2633, + "id": 2592, "nodeType": "ExpressionStatement", "src": "1622:61:21" }, { "expression": { "argumentTypes": null, - "id": 2638, + "id": 2597, "isConstant": false, "isLValue": false, "isPure": false, @@ -1446,25 +1446,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2634, + "id": 2593, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2549, + "referencedDeclaration": 2508, "src": "1693:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2636, + "id": 2595, "indexExpression": { "argumentTypes": null, - "id": 2635, + "id": 2594, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2622, + "referencedDeclaration": 2581, "src": "1707:7:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1487,7 +1487,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2637, + "id": 2596, "isConstant": false, "isLValue": false, "isPure": true, @@ -1508,24 +1508,24 @@ "typeString": "bool" } }, - "id": 2639, + "id": 2598, "nodeType": "ExpressionStatement", "src": "1693:30:21" } ] }, "documentation": "@dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 2641, + "id": 2600, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2625, + "id": 2584, "modifierName": { "argumentTypes": null, - "id": 2624, + "id": 2583, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1543,15 +1543,15 @@ "name": "removeFromWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 2623, + "id": 2582, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2622, + "id": 2581, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2641, + "scope": 2600, "src": "1557:15:21", "stateVariable": false, "storageLocation": "default", @@ -1560,7 +1560,7 @@ "typeString": "address" }, "typeName": { - "id": 2621, + "id": 2580, "name": "address", "nodeType": "ElementaryTypeName", "src": "1557:7:21", @@ -1577,12 +1577,12 @@ }, "payable": false, "returnParameters": { - "id": 2626, + "id": 2585, "nodeType": "ParameterList", "parameters": [], "src": "1612:0:21" }, - "scope": 2685, + "scope": 2644, "src": "1528:202:21", "stateMutability": "nonpayable", "superFunction": null, @@ -1590,7 +1590,7 @@ }, { "body": { - "id": 2683, + "id": 2642, "nodeType": "Block", "src": "2093:393:21", "statements": [ @@ -1605,18 +1605,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2657, + "id": 2616, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2700, + "referencedDeclaration": 2659, "src": "2230:3:21", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2658, + "id": 2617, "isConstant": false, "isLValue": false, "isPure": false, @@ -1643,7 +1643,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2654, + "id": 2613, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1662,18 +1662,18 @@ "typeString": "contract ModuleManager" } ], - "id": 2653, + "id": 2612, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1513, + "referencedDeclaration": 1511, "src": "2200:12:21", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1513_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1511_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2655, + "id": 2614, "isConstant": false, "isLValue": false, "isPure": false, @@ -1683,25 +1683,25 @@ "nodeType": "FunctionCall", "src": "2200:21:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1513", + "typeIdentifier": "t_contract$_OwnerManager_$1511", "typeString": "contract OwnerManager" } }, - "id": 2656, + "id": 2615, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1463, + "referencedDeclaration": 1461, "src": "2200:29:21", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 2659, + "id": 2618, "isConstant": false, "isLValue": false, "isPure": false, @@ -1718,7 +1718,7 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 2660, + "id": 2619, "isConstant": false, "isLValue": false, "isPure": true, @@ -1745,21 +1745,21 @@ "typeString": "literal_string \"Method can only be called by an owner\"" } ], - "id": 2652, + "id": 2611, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2192:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2661, + "id": 2620, "isConstant": false, "isLValue": false, "isPure": false, @@ -1773,7 +1773,7 @@ "typeString": "tuple()" } }, - "id": 2662, + "id": 2621, "nodeType": "ExpressionStatement", "src": "2192:91:21" }, @@ -1785,25 +1785,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2664, + "id": 2623, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2549, + "referencedDeclaration": 2508, "src": "2301:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2666, + "id": 2625, "indexExpression": { "argumentTypes": null, - "id": 2665, + "id": 2624, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2643, + "referencedDeclaration": 2602, "src": "2315:2:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1824,7 +1824,7 @@ { "argumentTypes": null, "hexValue": "546172676574206163636f756e74206973206e6f742077686974656c6973746564", - "id": 2667, + "id": 2626, "isConstant": false, "isLValue": false, "isPure": true, @@ -1851,21 +1851,21 @@ "typeString": "literal_string \"Target account is not whitelisted\"" } ], - "id": 2663, + "id": 2622, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2293:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2668, + "id": 2627, "isConstant": false, "isLValue": false, "isPure": false, @@ -1879,7 +1879,7 @@ "typeString": "tuple()" } }, - "id": 2669, + "id": 2628, "nodeType": "ExpressionStatement", "src": "2293:63:21" }, @@ -1892,11 +1892,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2673, + "id": 2632, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2643, + "referencedDeclaration": 2602, "src": "2408:2:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -1905,11 +1905,11 @@ }, { "argumentTypes": null, - "id": 2674, + "id": 2633, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2645, + "referencedDeclaration": 2604, "src": "2412:5:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -1918,11 +1918,11 @@ }, { "argumentTypes": null, - "id": 2675, + "id": 2634, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2647, + "referencedDeclaration": 2606, "src": "2419:4:21", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -1935,7 +1935,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2676, + "id": 2635, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -1946,7 +1946,7 @@ "typeString": "type(contract Enum)" } }, - "id": 2677, + "id": 2636, "isConstant": false, "isLValue": false, "isPure": false, @@ -1960,7 +1960,7 @@ "typeString": "type(enum Enum.Operation)" } }, - "id": 2678, + "id": 2637, "isConstant": false, "isLValue": false, "isPure": true, @@ -1996,7 +1996,7 @@ ], "expression": { "argumentTypes": null, - "id": 2671, + "id": 2630, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -2007,7 +2007,7 @@ "typeString": "contract ModuleManager" } }, - "id": 2672, + "id": 2631, "isConstant": false, "isLValue": false, "isPure": false, @@ -2021,7 +2021,7 @@ "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2679, + "id": 2638, "isConstant": false, "isLValue": false, "isPure": false, @@ -2038,7 +2038,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 2680, + "id": 2639, "isConstant": false, "isLValue": false, "isPure": true, @@ -2065,21 +2065,21 @@ "typeString": "literal_string \"Could not execute transaction\"" } ], - "id": 2670, + "id": 2629, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2366:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2681, + "id": 2640, "isConstant": false, "isLValue": false, "isPure": false, @@ -2093,14 +2093,14 @@ "typeString": "tuple()" } }, - "id": 2682, + "id": 2641, "nodeType": "ExpressionStatement", "src": "2366:113:21" } ] }, "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": 2684, + "id": 2643, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2108,15 +2108,15 @@ "name": "executeWhitelisted", "nodeType": "FunctionDefinition", "parameters": { - "id": 2648, + "id": 2607, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2643, + "id": 2602, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2684, + "scope": 2643, "src": "2012:10:21", "stateVariable": false, "storageLocation": "default", @@ -2125,7 +2125,7 @@ "typeString": "address" }, "typeName": { - "id": 2642, + "id": 2601, "name": "address", "nodeType": "ElementaryTypeName", "src": "2012:7:21", @@ -2139,10 +2139,10 @@ }, { "constant": false, - "id": 2645, + "id": 2604, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2684, + "scope": 2643, "src": "2024:13:21", "stateVariable": false, "storageLocation": "default", @@ -2151,7 +2151,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2644, + "id": 2603, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2024:7:21", @@ -2165,10 +2165,10 @@ }, { "constant": false, - "id": 2647, + "id": 2606, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2684, + "scope": 2643, "src": "2039:10:21", "stateVariable": false, "storageLocation": "default", @@ -2177,7 +2177,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2646, + "id": 2605, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2039:5:21", @@ -2194,15 +2194,15 @@ }, "payable": false, "returnParameters": { - "id": 2651, + "id": 2610, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2650, + "id": 2609, "name": "", "nodeType": "VariableDeclaration", - "scope": 2684, + "scope": 2643, "src": "2083:4:21", "stateVariable": false, "storageLocation": "default", @@ -2211,7 +2211,7 @@ "typeString": "bool" }, "typeName": { - "id": 2649, + "id": 2608, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2083:4:21", @@ -2226,14 +2226,14 @@ ], "src": "2082:6:21" }, - "scope": 2685, + "scope": 2644, "src": "1984:502:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2686, + "scope": 2645, "src": "289:2199:21" } ], @@ -2243,14 +2243,14 @@ "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/modules/WhitelistModule.sol", "exportedSymbols": { "WhitelistModule": [ - 2685 + 2644 ] }, - "id": 2686, + "id": 2645, "nodeType": "SourceUnit", "nodes": [ { - "id": 2533, + "id": 2492, "literals": [ "solidity", "0.4", @@ -2262,9 +2262,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Enum.sol", "file": "../Enum.sol", - "id": 2534, + "id": 2493, "nodeType": "ImportDirective", - "scope": 2686, + "scope": 2645, "sourceUnit": 31, "src": "24:21:21", "symbolAliases": [], @@ -2273,9 +2273,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/Module.sol", "file": "../Module.sol", - "id": 2535, + "id": 2494, "nodeType": "ImportDirective", - "scope": 2686, + "scope": 2645, "sourceUnit": 733, "src": "46:23:21", "symbolAliases": [], @@ -2284,9 +2284,9 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/ModuleManager.sol", "file": "../ModuleManager.sol", - "id": 2536, + "id": 2495, "nodeType": "ImportDirective", - "scope": 2686, + "scope": 2645, "sourceUnit": 1104, "src": "70:30:21", "symbolAliases": [], @@ -2295,10 +2295,10 @@ { "absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/OwnerManager.sol", "file": "../OwnerManager.sol", - "id": 2537, + "id": 2496, "nodeType": "ImportDirective", - "scope": 2686, - "sourceUnit": 1514, + "scope": 2645, + "sourceUnit": 1512, "src": "101:29:21", "symbolAliases": [], "unitAlias": "" @@ -2309,7 +2309,7 @@ "arguments": null, "baseName": { "contractScope": null, - "id": 2538, + "id": 2497, "name": "Module", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 732, @@ -2319,7 +2319,7 @@ "typeString": "contract Module" } }, - "id": 2539, + "id": 2498, "nodeType": "InheritanceSpecifier", "src": "317:6:21" } @@ -2327,27 +2327,27 @@ "contractDependencies": [ 632, 732, - 1663 + 1688 ], "contractKind": "contract", "documentation": "@title Whitelist Module - Allows to execute transactions to whitelisted addresses without confirmations.\n @author Stefan George - ", "fullyImplemented": true, - "id": 2685, + "id": 2644, "linearizedBaseContracts": [ - 2685, + 2644, 732, 632, - 1663 + 1688 ], "name": "WhitelistModule", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, - "id": 2542, + "id": 2501, "name": "NAME", "nodeType": "VariableDeclaration", - "scope": 2685, + "scope": 2644, "src": "331:48:21", "stateVariable": true, "storageLocation": "default", @@ -2356,7 +2356,7 @@ "typeString": "string" }, "typeName": { - "id": 2540, + "id": 2499, "name": "string", "nodeType": "ElementaryTypeName", "src": "331:6:21", @@ -2368,7 +2368,7 @@ "value": { "argumentTypes": null, "hexValue": "57686974656c697374204d6f64756c65", - "id": 2541, + "id": 2500, "isConstant": false, "isLValue": false, "isPure": true, @@ -2387,10 +2387,10 @@ }, { "constant": true, - "id": 2545, + "id": 2504, "name": "VERSION", "nodeType": "VariableDeclaration", - "scope": 2685, + "scope": 2644, "src": "385:40:21", "stateVariable": true, "storageLocation": "default", @@ -2399,7 +2399,7 @@ "typeString": "string" }, "typeName": { - "id": 2543, + "id": 2502, "name": "string", "nodeType": "ElementaryTypeName", "src": "385:6:21", @@ -2411,7 +2411,7 @@ "value": { "argumentTypes": null, "hexValue": "302e302e31", - "id": 2544, + "id": 2503, "isConstant": false, "isLValue": false, "isPure": true, @@ -2430,10 +2430,10 @@ }, { "constant": false, - "id": 2549, + "id": 2508, "name": "isWhitelisted", "nodeType": "VariableDeclaration", - "scope": 2685, + "scope": 2644, "src": "498:46:21", "stateVariable": true, "storageLocation": "default", @@ -2442,9 +2442,9 @@ "typeString": "mapping(address => bool)" }, "typeName": { - "id": 2548, + "id": 2507, "keyType": { - "id": 2546, + "id": 2505, "name": "address", "nodeType": "ElementaryTypeName", "src": "507:7:21", @@ -2460,7 +2460,7 @@ "typeString": "mapping(address => bool)" }, "valueType": { - "id": 2547, + "id": 2506, "name": "bool", "nodeType": "ElementaryTypeName", "src": "518:4:21", @@ -2475,7 +2475,7 @@ }, { "body": { - "id": 2590, + "id": 2549, "nodeType": "Block", "src": "721:244:21", "statements": [ @@ -2485,7 +2485,7 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 2555, + "id": 2514, "name": "setManager", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -2496,7 +2496,7 @@ "typeString": "function ()" } }, - "id": 2556, + "id": 2515, "isConstant": false, "isLValue": false, "isPure": false, @@ -2510,27 +2510,27 @@ "typeString": "tuple()" } }, - "id": 2557, + "id": 2516, "nodeType": "ExpressionStatement", "src": "731:12:21" }, { "body": { - "id": 2588, + "id": 2547, "nodeType": "Block", "src": "799:160:21", "statements": [ { "assignments": [ - 2570 + 2529 ], "declarations": [ { "constant": false, - "id": 2570, + "id": 2529, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2591, + "scope": 2550, "src": "813:15:21", "stateVariable": false, "storageLocation": "default", @@ -2539,7 +2539,7 @@ "typeString": "address" }, "typeName": { - "id": 2569, + "id": 2528, "name": "address", "nodeType": "ElementaryTypeName", "src": "813:7:21", @@ -2552,30 +2552,30 @@ "visibility": "internal" } ], - "id": 2574, + "id": 2533, "initialValue": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2571, + "id": 2530, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2552, + "referencedDeclaration": 2511, "src": "831:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2573, + "id": 2532, "indexExpression": { "argumentTypes": null, - "id": 2572, + "id": 2531, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2559, + "referencedDeclaration": 2518, "src": "840:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2606,18 +2606,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2578, + "id": 2537, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2576, + "id": 2535, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, + "referencedDeclaration": 2529, "src": "864:7:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2629,7 +2629,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2577, + "id": 2536, "isConstant": false, "isLValue": false, "isPure": true, @@ -2653,7 +2653,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2579, + "id": 2538, "isConstant": false, "isLValue": false, "isPure": true, @@ -2680,21 +2680,21 @@ "typeString": "literal_string \"Invalid account provided\"" } ], - "id": 2575, + "id": 2534, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "856:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2580, + "id": 2539, "isConstant": false, "isLValue": false, "isPure": false, @@ -2708,14 +2708,14 @@ "typeString": "tuple()" } }, - "id": 2581, + "id": 2540, "nodeType": "ExpressionStatement", "src": "856:49:21" }, { "expression": { "argumentTypes": null, - "id": 2586, + "id": 2545, "isConstant": false, "isLValue": false, "isPure": false, @@ -2724,25 +2724,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2582, + "id": 2541, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2549, + "referencedDeclaration": 2508, "src": "919:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2584, + "id": 2543, "indexExpression": { "argumentTypes": null, - "id": 2583, + "id": 2542, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2570, + "referencedDeclaration": 2529, "src": "933:7:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -2765,7 +2765,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2585, + "id": 2544, "isConstant": false, "isLValue": false, "isPure": true, @@ -2786,7 +2786,7 @@ "typeString": "bool" } }, - "id": 2587, + "id": 2546, "nodeType": "ExpressionStatement", "src": "919:29:21" } @@ -2798,18 +2798,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2565, + "id": 2524, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2562, + "id": 2521, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2559, + "referencedDeclaration": 2518, "src": "773:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2822,18 +2822,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2563, + "id": 2522, "name": "accounts", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2552, + "referencedDeclaration": 2511, "src": "777:8:21", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2564, + "id": 2523, "isConstant": false, "isLValue": false, "isPure": false, @@ -2853,18 +2853,18 @@ "typeString": "bool" } }, - "id": 2589, + "id": 2548, "initializationExpression": { "assignments": [ - 2559 + 2518 ], "declarations": [ { "constant": false, - "id": 2559, + "id": 2518, "name": "i", "nodeType": "VariableDeclaration", - "scope": 2591, + "scope": 2550, "src": "758:9:21", "stateVariable": false, "storageLocation": "default", @@ -2873,7 +2873,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2558, + "id": 2517, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "758:7:21", @@ -2886,11 +2886,11 @@ "visibility": "internal" } ], - "id": 2561, + "id": 2520, "initialValue": { "argumentTypes": null, "hexValue": "30", - "id": 2560, + "id": 2519, "isConstant": false, "isLValue": false, "isPure": true, @@ -2911,7 +2911,7 @@ "loopExpression": { "expression": { "argumentTypes": null, - "id": 2567, + "id": 2526, "isConstant": false, "isLValue": false, "isPure": false, @@ -2922,11 +2922,11 @@ "src": "794:3:21", "subExpression": { "argumentTypes": null, - "id": 2566, + "id": 2525, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2559, + "referencedDeclaration": 2518, "src": "794:1:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -2938,7 +2938,7 @@ "typeString": "uint256" } }, - "id": 2568, + "id": 2527, "nodeType": "ExpressionStatement", "src": "794:3:21" }, @@ -2948,7 +2948,7 @@ ] }, "documentation": "@dev Setup function sets initial storage of contract.\n @param accounts List of whitelisted accounts.", - "id": 2591, + "id": 2550, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -2956,15 +2956,15 @@ "name": "setup", "nodeType": "FunctionDefinition", "parameters": { - "id": 2553, + "id": 2512, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2552, + "id": 2511, "name": "accounts", "nodeType": "VariableDeclaration", - "scope": 2591, + "scope": 2550, "src": "682:18:21", "stateVariable": false, "storageLocation": "default", @@ -2974,7 +2974,7 @@ }, "typeName": { "baseType": { - "id": 2550, + "id": 2509, "name": "address", "nodeType": "ElementaryTypeName", "src": "682:7:21", @@ -2983,7 +2983,7 @@ "typeString": "address" } }, - "id": 2551, + "id": 2510, "length": null, "nodeType": "ArrayTypeName", "src": "682:9:21", @@ -3000,12 +3000,12 @@ }, "payable": false, "returnParameters": { - "id": 2554, + "id": 2513, "nodeType": "ParameterList", "parameters": [], "src": "721:0:21" }, - "scope": 2685, + "scope": 2644, "src": "667:298:21", "stateMutability": "nonpayable", "superFunction": null, @@ -3013,7 +3013,7 @@ }, { "body": { - "id": 2619, + "id": 2578, "nodeType": "Block", "src": "1193:181:21", "statements": [ @@ -3027,18 +3027,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2601, + "id": 2560, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, - "id": 2599, + "id": 2558, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2593, + "referencedDeclaration": 2552, "src": "1211:7:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3050,7 +3050,7 @@ "rightExpression": { "argumentTypes": null, "hexValue": "30", - "id": 2600, + "id": 2559, "isConstant": false, "isLValue": false, "isPure": true, @@ -3074,7 +3074,7 @@ { "argumentTypes": null, "hexValue": "496e76616c6964206163636f756e742070726f7669646564", - "id": 2602, + "id": 2561, "isConstant": false, "isLValue": false, "isPure": true, @@ -3101,21 +3101,21 @@ "typeString": "literal_string \"Invalid account provided\"" } ], - "id": 2598, + "id": 2557, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "1203:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2603, + "id": 2562, "isConstant": false, "isLValue": false, "isPure": false, @@ -3129,7 +3129,7 @@ "typeString": "tuple()" } }, - "id": 2604, + "id": 2563, "nodeType": "ExpressionStatement", "src": "1203:49:21" }, @@ -3139,7 +3139,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2609, + "id": 2568, "isConstant": false, "isLValue": false, "isPure": false, @@ -3152,25 +3152,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2606, + "id": 2565, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2549, + "referencedDeclaration": 2508, "src": "1271:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2608, + "id": 2567, "indexExpression": { "argumentTypes": null, - "id": 2607, + "id": 2566, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2593, + "referencedDeclaration": 2552, "src": "1285:7:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3196,7 +3196,7 @@ { "argumentTypes": null, "hexValue": "4163636f756e7420697320616c72656164792077686974656c6973746564", - "id": 2610, + "id": 2569, "isConstant": false, "isLValue": false, "isPure": true, @@ -3223,21 +3223,21 @@ "typeString": "literal_string \"Account is already whitelisted\"" } ], - "id": 2605, + "id": 2564, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "1262:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2611, + "id": 2570, "isConstant": false, "isLValue": false, "isPure": false, @@ -3251,14 +3251,14 @@ "typeString": "tuple()" } }, - "id": 2612, + "id": 2571, "nodeType": "ExpressionStatement", "src": "1262:66:21" }, { "expression": { "argumentTypes": null, - "id": 2617, + "id": 2576, "isConstant": false, "isLValue": false, "isPure": false, @@ -3267,25 +3267,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2613, + "id": 2572, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2549, + "referencedDeclaration": 2508, "src": "1338:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2615, + "id": 2574, "indexExpression": { "argumentTypes": null, - "id": 2614, + "id": 2573, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2593, + "referencedDeclaration": 2552, "src": "1352:7:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3308,7 +3308,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", - "id": 2616, + "id": 2575, "isConstant": false, "isLValue": false, "isPure": true, @@ -3329,24 +3329,24 @@ "typeString": "bool" } }, - "id": 2618, + "id": 2577, "nodeType": "ExpressionStatement", "src": "1338:29:21" } ] }, "documentation": "@dev Allows to add destination to whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 2620, + "id": 2579, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2596, + "id": 2555, "modifierName": { "argumentTypes": null, - "id": 2595, + "id": 2554, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -3364,15 +3364,15 @@ "name": "addToWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 2594, + "id": 2553, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2593, + "id": 2552, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2620, + "scope": 2579, "src": "1138:15:21", "stateVariable": false, "storageLocation": "default", @@ -3381,7 +3381,7 @@ "typeString": "address" }, "typeName": { - "id": 2592, + "id": 2551, "name": "address", "nodeType": "ElementaryTypeName", "src": "1138:7:21", @@ -3398,12 +3398,12 @@ }, "payable": false, "returnParameters": { - "id": 2597, + "id": 2556, "nodeType": "ParameterList", "parameters": [], "src": "1193:0:21" }, - "scope": 2685, + "scope": 2644, "src": "1114:260:21", "stateMutability": "nonpayable", "superFunction": null, @@ -3411,7 +3411,7 @@ }, { "body": { - "id": 2640, + "id": 2599, "nodeType": "Block", "src": "1612:118:21", "statements": [ @@ -3423,25 +3423,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2628, + "id": 2587, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2549, + "referencedDeclaration": 2508, "src": "1630:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2630, + "id": 2589, "indexExpression": { "argumentTypes": null, - "id": 2629, + "id": 2588, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2622, + "referencedDeclaration": 2581, "src": "1644:7:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3462,7 +3462,7 @@ { "argumentTypes": null, "hexValue": "4163636f756e74206973206e6f742077686974656c6973746564", - "id": 2631, + "id": 2590, "isConstant": false, "isLValue": false, "isPure": true, @@ -3489,21 +3489,21 @@ "typeString": "literal_string \"Account is not whitelisted\"" } ], - "id": 2627, + "id": 2586, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "1622:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2632, + "id": 2591, "isConstant": false, "isLValue": false, "isPure": false, @@ -3517,14 +3517,14 @@ "typeString": "tuple()" } }, - "id": 2633, + "id": 2592, "nodeType": "ExpressionStatement", "src": "1622:61:21" }, { "expression": { "argumentTypes": null, - "id": 2638, + "id": 2597, "isConstant": false, "isLValue": false, "isPure": false, @@ -3533,25 +3533,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2634, + "id": 2593, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2549, + "referencedDeclaration": 2508, "src": "1693:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2636, + "id": 2595, "indexExpression": { "argumentTypes": null, - "id": 2635, + "id": 2594, "name": "account", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2622, + "referencedDeclaration": 2581, "src": "1707:7:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3574,7 +3574,7 @@ "rightHandSide": { "argumentTypes": null, "hexValue": "66616c7365", - "id": 2637, + "id": 2596, "isConstant": false, "isLValue": false, "isPure": true, @@ -3595,24 +3595,24 @@ "typeString": "bool" } }, - "id": 2639, + "id": 2598, "nodeType": "ExpressionStatement", "src": "1693:30:21" } ] }, "documentation": "@dev Allows to remove destination from whitelist. This can only be done via a Safe transaction.\n @param account Destination address.", - "id": 2641, + "id": 2600, "implemented": true, "isConstructor": false, "isDeclaredConst": false, "modifiers": [ { "arguments": null, - "id": 2625, + "id": 2584, "modifierName": { "argumentTypes": null, - "id": 2624, + "id": 2583, "name": "authorized", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -3630,15 +3630,15 @@ "name": "removeFromWhitelist", "nodeType": "FunctionDefinition", "parameters": { - "id": 2623, + "id": 2582, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2622, + "id": 2581, "name": "account", "nodeType": "VariableDeclaration", - "scope": 2641, + "scope": 2600, "src": "1557:15:21", "stateVariable": false, "storageLocation": "default", @@ -3647,7 +3647,7 @@ "typeString": "address" }, "typeName": { - "id": 2621, + "id": 2580, "name": "address", "nodeType": "ElementaryTypeName", "src": "1557:7:21", @@ -3664,12 +3664,12 @@ }, "payable": false, "returnParameters": { - "id": 2626, + "id": 2585, "nodeType": "ParameterList", "parameters": [], "src": "1612:0:21" }, - "scope": 2685, + "scope": 2644, "src": "1528:202:21", "stateMutability": "nonpayable", "superFunction": null, @@ -3677,7 +3677,7 @@ }, { "body": { - "id": 2683, + "id": 2642, "nodeType": "Block", "src": "2093:393:21", "statements": [ @@ -3692,18 +3692,18 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2657, + "id": 2616, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2700, + "referencedDeclaration": 2659, "src": "2230:3:21", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2658, + "id": 2617, "isConstant": false, "isLValue": false, "isPure": false, @@ -3730,7 +3730,7 @@ "arguments": [ { "argumentTypes": null, - "id": 2654, + "id": 2613, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -3749,18 +3749,18 @@ "typeString": "contract ModuleManager" } ], - "id": 2653, + "id": 2612, "name": "OwnerManager", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1513, + "referencedDeclaration": 1511, "src": "2200:12:21", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1513_$", + "typeIdentifier": "t_type$_t_contract$_OwnerManager_$1511_$", "typeString": "type(contract OwnerManager)" } }, - "id": 2655, + "id": 2614, "isConstant": false, "isLValue": false, "isPure": false, @@ -3770,25 +3770,25 @@ "nodeType": "FunctionCall", "src": "2200:21:21", "typeDescriptions": { - "typeIdentifier": "t_contract$_OwnerManager_$1513", + "typeIdentifier": "t_contract$_OwnerManager_$1511", "typeString": "contract OwnerManager" } }, - "id": 2656, + "id": 2615, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "isOwner", "nodeType": "MemberAccess", - "referencedDeclaration": 1463, + "referencedDeclaration": 1461, "src": "2200:29:21", "typeDescriptions": { "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", "typeString": "function (address) view external returns (bool)" } }, - "id": 2659, + "id": 2618, "isConstant": false, "isLValue": false, "isPure": false, @@ -3805,7 +3805,7 @@ { "argumentTypes": null, "hexValue": "4d6574686f642063616e206f6e6c792062652063616c6c656420627920616e206f776e6572", - "id": 2660, + "id": 2619, "isConstant": false, "isLValue": false, "isPure": true, @@ -3832,21 +3832,21 @@ "typeString": "literal_string \"Method can only be called by an owner\"" } ], - "id": 2652, + "id": 2611, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2192:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2661, + "id": 2620, "isConstant": false, "isLValue": false, "isPure": false, @@ -3860,7 +3860,7 @@ "typeString": "tuple()" } }, - "id": 2662, + "id": 2621, "nodeType": "ExpressionStatement", "src": "2192:91:21" }, @@ -3872,25 +3872,25 @@ "argumentTypes": null, "baseExpression": { "argumentTypes": null, - "id": 2664, + "id": 2623, "name": "isWhitelisted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2549, + "referencedDeclaration": 2508, "src": "2301:13:21", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, - "id": 2666, + "id": 2625, "indexExpression": { "argumentTypes": null, - "id": 2665, + "id": 2624, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2643, + "referencedDeclaration": 2602, "src": "2315:2:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3911,7 +3911,7 @@ { "argumentTypes": null, "hexValue": "546172676574206163636f756e74206973206e6f742077686974656c6973746564", - "id": 2667, + "id": 2626, "isConstant": false, "isLValue": false, "isPure": true, @@ -3938,21 +3938,21 @@ "typeString": "literal_string \"Target account is not whitelisted\"" } ], - "id": 2663, + "id": 2622, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2293:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2668, + "id": 2627, "isConstant": false, "isLValue": false, "isPure": false, @@ -3966,7 +3966,7 @@ "typeString": "tuple()" } }, - "id": 2669, + "id": 2628, "nodeType": "ExpressionStatement", "src": "2293:63:21" }, @@ -3979,11 +3979,11 @@ "arguments": [ { "argumentTypes": null, - "id": 2673, + "id": 2632, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2643, + "referencedDeclaration": 2602, "src": "2408:2:21", "typeDescriptions": { "typeIdentifier": "t_address", @@ -3992,11 +3992,11 @@ }, { "argumentTypes": null, - "id": 2674, + "id": 2633, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2645, + "referencedDeclaration": 2604, "src": "2412:5:21", "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -4005,11 +4005,11 @@ }, { "argumentTypes": null, - "id": 2675, + "id": 2634, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2647, + "referencedDeclaration": 2606, "src": "2419:4:21", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -4022,7 +4022,7 @@ "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 2676, + "id": 2635, "name": "Enum", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -4033,7 +4033,7 @@ "typeString": "type(contract Enum)" } }, - "id": 2677, + "id": 2636, "isConstant": false, "isLValue": false, "isPure": false, @@ -4047,7 +4047,7 @@ "typeString": "type(enum Enum.Operation)" } }, - "id": 2678, + "id": 2637, "isConstant": false, "isLValue": false, "isPure": true, @@ -4083,7 +4083,7 @@ ], "expression": { "argumentTypes": null, - "id": 2671, + "id": 2630, "name": "manager", "nodeType": "Identifier", "overloadedDeclarations": [], @@ -4094,7 +4094,7 @@ "typeString": "contract ModuleManager" } }, - "id": 2672, + "id": 2631, "isConstant": false, "isLValue": false, "isPure": false, @@ -4108,7 +4108,7 @@ "typeString": "function (address,uint256,bytes memory,enum Enum.Operation) external returns (bool)" } }, - "id": 2679, + "id": 2638, "isConstant": false, "isLValue": false, "isPure": false, @@ -4125,7 +4125,7 @@ { "argumentTypes": null, "hexValue": "436f756c64206e6f742065786563757465207472616e73616374696f6e", - "id": 2680, + "id": 2639, "isConstant": false, "isLValue": false, "isPure": true, @@ -4152,21 +4152,21 @@ "typeString": "literal_string \"Could not execute transaction\"" } ], - "id": 2670, + "id": 2629, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ - 2703, - 2704 + 2662, + 2663 ], - "referencedDeclaration": 2704, + "referencedDeclaration": 2663, "src": "2366:7:21", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2681, + "id": 2640, "isConstant": false, "isLValue": false, "isPure": false, @@ -4180,14 +4180,14 @@ "typeString": "tuple()" } }, - "id": 2682, + "id": 2641, "nodeType": "ExpressionStatement", "src": "2366:113:21" } ] }, "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": 2684, + "id": 2643, "implemented": true, "isConstructor": false, "isDeclaredConst": false, @@ -4195,15 +4195,15 @@ "name": "executeWhitelisted", "nodeType": "FunctionDefinition", "parameters": { - "id": 2648, + "id": 2607, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2643, + "id": 2602, "name": "to", "nodeType": "VariableDeclaration", - "scope": 2684, + "scope": 2643, "src": "2012:10:21", "stateVariable": false, "storageLocation": "default", @@ -4212,7 +4212,7 @@ "typeString": "address" }, "typeName": { - "id": 2642, + "id": 2601, "name": "address", "nodeType": "ElementaryTypeName", "src": "2012:7:21", @@ -4226,10 +4226,10 @@ }, { "constant": false, - "id": 2645, + "id": 2604, "name": "value", "nodeType": "VariableDeclaration", - "scope": 2684, + "scope": 2643, "src": "2024:13:21", "stateVariable": false, "storageLocation": "default", @@ -4238,7 +4238,7 @@ "typeString": "uint256" }, "typeName": { - "id": 2644, + "id": 2603, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2024:7:21", @@ -4252,10 +4252,10 @@ }, { "constant": false, - "id": 2647, + "id": 2606, "name": "data", "nodeType": "VariableDeclaration", - "scope": 2684, + "scope": 2643, "src": "2039:10:21", "stateVariable": false, "storageLocation": "default", @@ -4264,7 +4264,7 @@ "typeString": "bytes" }, "typeName": { - "id": 2646, + "id": 2605, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2039:5:21", @@ -4281,15 +4281,15 @@ }, "payable": false, "returnParameters": { - "id": 2651, + "id": 2610, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2650, + "id": 2609, "name": "", "nodeType": "VariableDeclaration", - "scope": 2684, + "scope": 2643, "src": "2083:4:21", "stateVariable": false, "storageLocation": "default", @@ -4298,7 +4298,7 @@ "typeString": "bool" }, "typeName": { - "id": 2649, + "id": 2608, "name": "bool", "nodeType": "ElementaryTypeName", "src": "2083:4:21", @@ -4313,14 +4313,14 @@ ], "src": "2082:6:21" }, - "scope": 2685, + "scope": 2644, "src": "1984:502:21", "stateMutability": "nonpayable", "superFunction": null, "visibility": "public" } ], - "scope": 2686, + "scope": 2645, "src": "289:2199:21" } ], @@ -4331,85 +4331,13 @@ "version": "0.4.24+commit.e67f0147.Emscripten.clang" }, "networks": { - "4": { + "1530197641790": { "events": {}, "links": {}, - "address": "0xbaa61d045b5fed7a21dd37ccd3beef2dbf6f5a8a", - "transactionHash": "0x40568a410a329444f7f469f0d2861308dda4c1c0d2bb520eb9b40317b2a646db" - }, - "1529327661534": { - "events": {}, - "links": {}, - "address": "0x012bfd13175d46df700e32bcf7f212c93d858210", - "transactionHash": "0x1626d24aa1a64aacd449ea6acba369532bbb860b2db5fcfd6d1aba65f03d47fb" - }, - "1529333415702": { - "events": {}, - "links": {}, - "address": "0x6fafade61582e994730a7cd15480155d8017e888", - "transactionHash": "0x7850b601cdea18ba050f455b4fad47c152c51ed5d2c56e88a54a336780ddcbd2" - }, - "1529652204341": { - "events": {}, - "links": {}, - "address": "0x88ed584819ee8dda7263b501af76ca07befa9ac7", - "transactionHash": "0x07909d849b2c29127266874541e7145062da0e1af6ab5d204cd91ca8d08d48d0" - }, - "1529931780812": { - "events": {}, - "links": {}, - "address": "0xd1ec1c3b972546a122eabc37458d05806840d4f9", - "transactionHash": "0x07909d849b2c29127266874541e7145062da0e1af6ab5d204cd91ca8d08d48d0" - }, - "1529933005377": { - "events": {}, - "links": {}, - "address": "0xb3d3525b86bf366469811a80e23ee9ba4bd3f72c", - "transactionHash": "0x07909d849b2c29127266874541e7145062da0e1af6ab5d204cd91ca8d08d48d0" - }, - "1529934931891": { - "events": {}, - "links": {}, - "address": "0x589685828d08aec4615f5aed0fbfe18f3cf57e4f", - "transactionHash": "0x07909d849b2c29127266874541e7145062da0e1af6ab5d204cd91ca8d08d48d0" - }, - "1529935355957": { - "events": {}, - "links": {}, - "address": "0x17d63d4cf50f254f52dbac6ede869e7490d843a7", - "transactionHash": "0x07909d849b2c29127266874541e7145062da0e1af6ab5d204cd91ca8d08d48d0" - }, - "1529936204222": { - "events": {}, - "links": {}, - "address": "0xfe2449b026490c5d0eed9f2997f74619481369fc", - "transactionHash": "0x07909d849b2c29127266874541e7145062da0e1af6ab5d204cd91ca8d08d48d0" - }, - "1529937280871": { - "events": {}, - "links": {}, - "address": "0x9396f84b093e1f19bdd0a19041dc3d9cbc483ba5", - "transactionHash": "0x07909d849b2c29127266874541e7145062da0e1af6ab5d204cd91ca8d08d48d0" - }, - "1529937637076": { - "events": {}, - "links": {}, - "address": "0xd9dea8fa5558de595bd11ea5305019ed1b2e7111", - "transactionHash": "0x07909d849b2c29127266874541e7145062da0e1af6ab5d204cd91ca8d08d48d0" - }, - "1529937890676": { - "events": {}, - "links": {}, - "address": "0x1ef611a67c99e13813c57c2bd009cf1fef62b2da", - "transactionHash": "0x07909d849b2c29127266874541e7145062da0e1af6ab5d204cd91ca8d08d48d0" - }, - "1530013596495": { - "events": {}, - "links": {}, - "address": "0x73e3dec82bfc374699c3aca527065859c76ecc28", - "transactionHash": "0x07909d849b2c29127266874541e7145062da0e1af6ab5d204cd91ca8d08d48d0" + "address": "0xadeb6fb1db2bc395cdb25a6b8593d23d606fdd09", + "transactionHash": "0x43b71202e5dfc71aec31581d645b1839f5bc4ddc0ac6bd149091223b726ec7e4" } }, - "schemaVersion": "2.0.0", - "updatedAt": "2018-06-26T11:47:04.141Z" + "schemaVersion": "2.0.1", + "updatedAt": "2018-06-28T15:26:58.225Z" } \ No newline at end of file diff --git a/src/routes/safe/container/index.jsx b/src/routes/safe/container/index.jsx index a7c45eea..607cc5ed 100644 --- a/src/routes/safe/container/index.jsx +++ b/src/routes/safe/container/index.jsx @@ -14,11 +14,12 @@ type Props = Actions & SelectorProps & { class SafeView extends React.PureComponent { componentDidMount() { this.intervalId = setInterval(() => { - const { safe, fetchSafe } = this.props + const { safe, fetchBalances, fetchSafe } = this.props if (!safe) { return } - + const safeAddress = safe.get('address') + fetchBalances(safeAddress) fetchSafe(safe) }, 1500) } @@ -42,8 +43,10 @@ class SafeView extends React.PureComponent { render() { const { - safe, provider, balance, granted, userAddress, + safe, provider, balances, granted, userAddress, } = this.props + const ethBalance = balances.get('ETH') + const balance = ethBalance ? ethBalance.get('funds') : '0' return ( diff --git a/src/routes/safe/container/selector.js b/src/routes/safe/container/selector.js index 1ce3d69b..88ca76f5 100644 --- a/src/routes/safe/container/selector.js +++ b/src/routes/safe/container/selector.js @@ -11,7 +11,7 @@ import { sameAddress } from '~/wallets/ethAddresses' export type SelectorProps = { safe: SafeSelectorProps, provider: string, - balance: string, + balances: Map, userAddress: string, } @@ -39,7 +39,7 @@ export const grantedSelector: Selector = crea export default createStructuredSelector({ safe: safeSelector, provider: providerNameSelector, - balance: balanceSelector, + balances: balanceSelector, granted: grantedSelector, userAddress: userAccountSelector, }) diff --git a/src/routes/safe/store/actions/fetchBalances.js b/src/routes/safe/store/actions/fetchBalances.js index 70128769..edb2f325 100644 --- a/src/routes/safe/store/actions/fetchBalances.js +++ b/src/routes/safe/store/actions/fetchBalances.js @@ -2,7 +2,7 @@ import { Map } from 'immutable' import contract from 'truffle-contract' import type { Dispatch as ReduxDispatch } from 'redux' -import ERC20Token from '#/ERC20Token.json' +import StandardToken from '@gnosis.pm/util-contracts/build/contracts/StandardToken.json' import { getBalanceInEtherOf, getWeb3 } from '~/wallets/getWeb3' import { type GlobalState } from '~/store/index' import { makeBalance, type Balance, type BalanceProps } from '~/routes/safe/store/model/balance' @@ -10,7 +10,7 @@ import addBalances from './addBalances' export const calculateBalanceOf = async (tokenAddress: string, address: string) => { const web3 = getWeb3() - const erc20Token = await contract(ERC20Token) + const erc20Token = await contract(StandardToken) erc20Token.setProvider(web3.currentProvider) return erc20Token.at(tokenAddress) diff --git a/src/test/utils/transactions/moveFunds.helper.js b/src/test/utils/transactions/moveFunds.helper.js index 13f64aa0..3a4d96c5 100644 --- a/src/test/utils/transactions/moveFunds.helper.js +++ b/src/test/utils/transactions/moveFunds.helper.js @@ -3,7 +3,7 @@ import TestUtils from 'react-dom/test-utils' import { sleep } from '~/utils/timer' import { checkMinedTx, checkPendingTx } from '~/test/builder/safe.dom.utils' -export const sendMoveFundsForm = ( +export const sendMoveFundsForm = async ( SafeDom: React$Component, multisigButton: React$Component, txName: string, @@ -13,7 +13,7 @@ export const sendMoveFundsForm = ( // load add multisig form component TestUtils.Simulate.click(multisigButton) // give time to re-render it - sleep(600) + await sleep(600) // fill the form const inputs = TestUtils.scryRenderedDOMComponentsWithTag(SafeDom, 'input') diff --git a/yarn.lock b/yarn.lock index c90bc244..d0312396 100644 --- a/yarn.lock +++ b/yarn.lock @@ -931,6 +931,10 @@ lodash "^4.17.5" to-fast-properties "^2.0.0" +"@gnosis.pm/util-contracts@^0.2.14": + version "0.2.14" + resolved "https://registry.yarnpkg.com/@gnosis.pm/util-contracts/-/util-contracts-0.2.14.tgz#587cd6268a7d08dbc0d08b1c7bd375e19549d833" + "@material-ui/core@^1.2.1": version "1.2.2" resolved "https://registry.yarnpkg.com/@material-ui/core/-/core-1.2.2.tgz#b074bdaa679d68af235b4d3f108f828ddcf6c1bc"