WA-232 Fix balance integration in selectors

This commit is contained in:
Adolfo Panizo 2018-06-28 19:13:59 +02:00
parent 9ca0f2e41a
commit 7dee0170c8
29 changed files with 13614 additions and 15531 deletions

View File

@ -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",

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -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"
}

File diff suppressed because it is too large Load Diff

View File

@ -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 - <richard@gnosis.pm>\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 - <richard@gnosis.pm>",
"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 - <richard@gnosis.pm>",
"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"
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -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 - <richard@gnosis.pm>\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 - <richard@gnosis.pm>",
"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 - <richard@gnosis.pm>",
"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"
}

View File

@ -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"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -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 - <nick.dodson@consensys.net>\n @author Gonçalo Sá - <goncalo.sa@consensys.net>\n @author Stefan George - <stefan@gnosis.pm>",
"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 - <nick.dodson@consensys.net>\n @author Gonçalo Sá - <goncalo.sa@consensys.net>\n @author Stefan George - <stefan@gnosis.pm>",
"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"
}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -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"
}

View File

@ -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"
}

View File

@ -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 - <richard@gnosis.pm>\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 - <richard@gnosis.pm>",
"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 - <richard@gnosis.pm>",
"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"
}

View File

@ -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 - <richard@gnosis.pm>\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 - <richard@gnosis.pm>",
"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 - <richard@gnosis.pm>",
"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"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -14,11 +14,12 @@ type Props = Actions & SelectorProps & {
class SafeView extends React.PureComponent<Props> {
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<Props> {
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 (
<Page>

View File

@ -11,7 +11,7 @@ import { sameAddress } from '~/wallets/ethAddresses'
export type SelectorProps = {
safe: SafeSelectorProps,
provider: string,
balance: string,
balances: Map<string, Balance>,
userAddress: string,
}
@ -39,7 +39,7 @@ export const grantedSelector: Selector<GlobalState, RouterProps, boolean> = crea
export default createStructuredSelector({
safe: safeSelector,
provider: providerNameSelector,
balance: balanceSelector,
balances: balanceSelector,
granted: grantedSelector,
userAddress: userAccountSelector,
})

View File

@ -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)

View File

@ -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<any, any>,
multisigButton: React$Component<any, any>,
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')

View File

@ -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"