safe-react/safe-contracts/build/contracts/v0/MultiSendStruct.json

1678 lines
75 KiB
JSON
Raw Normal View History

2018-05-10 11:12:13 +00:00
{
"contractName": "MultiSendStruct",
"abi": [
{
"constant": false,
"inputs": [
{
"components": [
{
"name": "to",
"type": "address"
},
{
"name": "value",
"type": "uint256"
},
{
"name": "data",
"type": "bytes"
}
],
"name": "transactions",
"type": "tuple[]"
}
],
"name": "multiSend",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x6060604052341561000f57600080fd5b6104338061001e6000396000f300606060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f6fda4a14610046575b600080fd5b341561005157600080fd5b61006660046100619036906102d1565b610068565b005b60006100726100e8565b600091505b82518210156100c957828281518110151561008e57fe5b9060200190602002015190506100b18160000151826020015183604001516100ce565b15156100bc57600080fd5b8180600101925050610077565b505050565b60008060008351602085018688600019f190509392505050565b606060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001610120610126565b81525090565b602060405190810160405280600081525090565b600061014682356103c0565b905092915050565b600082601f8301126000811461016357610168565b600080fd5b50813561017c6101778261035a565b610324565b9150818183526020840193506020810190508360005b838110156101c257813586016101a88882610233565b845260208401935060208301925050600181019050610192565b5050505092915050565b600082601f830112600081146101e1576101e6565b600080fd5b5081356101fa6101f58261038b565b610324565b915080825260208301602083018583830111600181146102195761021e565b600080fd5b5061022a8382846103ea565b50505092915050565b6000606082840312600181146102485761024d565b600080fd5b506102586060610324565b905060006102688482850161013a565b600083015250602061027c848285016102bd565b602083015250604082013567ffffffffffffffff81116001811461029f576102a4565b600080fd5b506102b1848285016101cc565b60408301525092915050565b60006102c982356103e0565b905092915050565b6000602082840312600181146102e6576102eb565b600080fd5b50600082013567ffffffffffffffff8111600181146103095761030e565b600080fd5b5061031b8482850161014e565b91505092915050565b6000604051905081810181811067ffffffffffffffff8211176001811461034a5761034f565b600080fd5b508060405250919050565b600067ffffffffffffffff82116001811461037457610379565b600080fd5b50602082029050602081019050919050565b600067ffffffffffffffff8211600181146103a5576103aa565b600080fd5b50601f19601f8301169050602081019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b828183376000838301525050505600a265627a7a72305820484c17df168e13c63e6cab3910c3609158f4993315f595b990932cc0a3f27c726c6578706572696d656e74616cf50037",
"deployedBytecode": "0x606060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680632f6fda4a14610046575b600080fd5b341561005157600080fd5b61006660046100619036906102d1565b610068565b005b60006100726100e8565b600091505b82518210156100c957828281518110151561008e57fe5b9060200190602002015190506100b18160000151826020015183604001516100ce565b15156100bc57600080fd5b8180600101925050610077565b505050565b60008060008351602085018688600019f190509392505050565b606060405190810160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001610120610126565b81525090565b602060405190810160405280600081525090565b600061014682356103c0565b905092915050565b600082601f8301126000811461016357610168565b600080fd5b50813561017c6101778261035a565b610324565b9150818183526020840193506020810190508360005b838110156101c257813586016101a88882610233565b845260208401935060208301925050600181019050610192565b5050505092915050565b600082601f830112600081146101e1576101e6565b600080fd5b5081356101fa6101f58261038b565b610324565b915080825260208301602083018583830111600181146102195761021e565b600080fd5b5061022a8382846103ea565b50505092915050565b6000606082840312600181146102485761024d565b600080fd5b506102586060610324565b905060006102688482850161013a565b600083015250602061027c848285016102bd565b602083015250604082013567ffffffffffffffff81116001811461029f576102a4565b600080fd5b506102b1848285016101cc565b60408301525092915050565b60006102c982356103e0565b905092915050565b6000602082840312600181146102e6576102eb565b600080fd5b50600082013567ffffffffffffffff8111600181146103095761030e565b600080fd5b5061031b8482850161014e565b91505092915050565b6000604051905081810181811067ffffffffffffffff8211176001811461034a5761034f565b600080fd5b508060405250919050565b600067ffffffffffffffff82116001811461037457610379565b600080fd5b50602082029050602081019050919050565b600067ffffffffffffffff8211600181146103a5576103aa565b600080fd5b50601f19601f8301169050602081019050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b828183376000838301525050505600a265627a7a72305820484c17df168e13c63e6cab3910c3609158f4993315f595b990932cc0a3f27c726c6578706572696d656e74616cf50037",
"sourceMap": "339:772:10:-;;;;;;;;;;;;;;;;;",
"deployedSourceMap": "339:772:10:-;;;;;;;;;;;;;;;;;;;;;;;;581:291;;;;;;;;;;;;;;;;;;;;;;;661:9;720:30;;:::i;:::-;673:1;661:13;;657:209;680:12;:19;676:1;:23;657:209;;;753:12;766:1;753:15;;;;;;;;;;;;;;;;;;720:48;;790:64;802:11;:14;;;818:11;:17;;;837:11;:16;;;790:11;:64::i;:::-;782:73;;;;;;;;701:3;;;;;;;657:209;;;581:291;;;:::o;878:231::-;972:12;1091:1;1088;1081:4;1075:5;1068:4;1062;1058:3;1051:5;1047:2;1043:1;1039:3;1034:4;1023:70;;1009:94;;;;;:::o;339:772::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;5:118:-1:-;;72:46;110:6;97:12;72:46;;;63:55;;57:66;;;;;175:756;;314:3;307:4;299:6;295:3;291;324:1;319:23;;;;284:58;;319:23;338:1;335;328:6;284:58;;375:6;362:12;397:105;412:89;494:6;412:89;;;397:105;;;388:114;;519:5;544:6;537:5;530:6;574:4;566:6;562:3;552:27;;596:4;591:3;587;580:21;;649:6;682:1;667:258;692:6;689:1;686:2;667:258;;;775:3;762:12;754:6;750:3;799:62;857:3;845:10;799:62;;;794:3;787:6;885:4;880:3;876;869:21;;913:4;908:3;904;897:21;;724:201;714:1;711;707:3;702:14;;667:258;;;671:14;277:654;;;;;;;;940:446;;1034:3;1027:4;1019:6;1015:3;1011;1044:1;1039:23;;;;1004:58;;1039:23;1058:1;1055;1048:6;1004:58;;1095:6;1082:12;1117:60;1132:44;1169:6;1132:44;;;1117:60;;;1108:69;;1197:6;1190:5;1183:6;1233:4;1225:6;1221:3;1266:4;1259:5;1255:3;1305;1296:6;1291:3;1287;1284:2;1315:1;1310:23;;;;1277:56;;1310:23;1329:1;1326;1319:6;1277:56;;1339:41;1373:6;1368:3;1363;1339:41;;;997:389;;;;;;;;1435:722;;1553:4;1541:9;1536:3;1532;1528;1564:1;1559:23;;;;1521:61;;1559:23;1578:1;1575;1568:6;1521:61;;1596:20;1611:4;1596:20;;;1587:29;;1664:1;1695:49;1740:3;1731:6;1720:9;1716:3;1695:49;;;1689:3;1682:5;1678:3;1671:6;1626:130;1807:2;1840:49;1885:3;1876:6;1865:9;1861:3;1840:49;;;1833:4;1826:5;1822:3;1815:6;1766:135;1979:2;1968:9;1964:3;1951:12;2007:18;1999:6;1996:2;2032:1;2027:23;;;;1989:61;;2027:23;2046:1;2043;2036:6;1989:61;;2081:54;2131:3;2122:6;2111:9;2107:3;2081:54;;;2074:4;2067:5;2063:3;2056:6;1911:236;1515:642;;;;;2164:118;;2231:46;2269:6;2256:12;2231:46;;;2222:55;;2216:66;;;;;2289:449;;2447:2;2435:9;2426:7;2422:3;2418;2456:1;2451:23;;;;2411:63;;2451:23;2470:1;2467;2460:6;2411:63;;2533:1;2522:9;2518:3;2505:12;2560:18;2552:6;2549:2;2585:1;2580:23;;;;2542:61;;2580:23;2599:1;2596;2589:6;2542:61;;2619:103;2714:7;2705:6;2694:9;2690:3;2619:103;;;2609:113;;2484:244;2405:333;;;;;2745:267;;2807:2;2801:5;2791:19;;2845:4;2837:6;2833:3;2948:6;2936:10;2933:2;2912:18;2900:10;2897:2;2894;2962:1;2957:23;;;;2887:93;;2957:23;2976:1;2973;2966:6;2887:93;;2996:10;2992:2;2985:6;2785:227;;;;;3019:294;;3207:18;3199:6;3196:2;3232:1;3227:23;;;;3189:61;;3227:23;3246:1;3243;3236:6;3189:61;;3275:4;3267:6;3263:3;3255:25;;3303:4;3297;3293:3;3285:23;;3126:187;;;;3320:265;;3463:18;3455:6;3452:2;3488:1;3483:23;;;;3445:61;;3483:23;3502:1;3499;3492:6;3445:61;;3546:4;3542:3;3535:4;3527:6;3523:3;3519;3511:41;;3575:4;3569;3565:3;3557:23;;3382:203;;;;3592:128;;3672:42;3665:5;3661:3;3650:65;;3644:76;;;;3727:79;;3796:5;3785:16;;3779:27;;;;3814:145;3895:6;3890:3;3885;3872:12;3951:1;3942:6;3937:3;3933;3926:6;3865:94;;;",
"source": "pragma solidity ^0.4.19;\npragma experimental ABIEncoderV2;\n\n\n/// @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>\n/// @author Richard Meissner - <richard@gnosis.pm>\ncontract MultiSendStruct {\n\n struct Transaction {\n address to;\n uint256 value;\n bytes data;\n }\n\n /// @dev Sends multiple transactions and reverts all if one fails.\n /// @param transactions Encoded transactions.\n function multiSend(Transaction[] transactions)\n public\n {\n for(uint256 i = 0; i < transactions.length; i++) {\n Transaction memory transaction = transactions[i];\n require(executeCall(transaction.to, transaction.value, transaction.data));\n }\n }\n\n function executeCall(address to, uint256 value, bytes data)\n internal\n returns (bool success)\n {\n assembly {\n success := call(not(0), to, value, add(data, 0x20), mload(data), 0, 0)\n }\n }\n}\n",
"sourcePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSendStruct.sol",
"ast": {
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSendStruct.sol",
"exportedSymbols": {
"MultiSendStruct": [
2077
]
},
"id": 2078,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2018,
"literals": [
"solidity",
"^",
"0.4",
".19"
],
"nodeType": "PragmaDirective",
"src": "0:24:10"
},
{
"id": 2019,
"literals": [
"experimental",
"ABIEncoderV2"
],
"nodeType": "PragmaDirective",
"src": "25:33:10"
},
{
"baseContracts": [],
"contractDependencies": [],
"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>\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 2077,
"linearizedBaseContracts": [
2077
],
"name": "MultiSendStruct",
"nodeType": "ContractDefinition",
"nodes": [
{
"canonicalName": "MultiSendStruct.Transaction",
"id": 2026,
"members": [
{
"constant": false,
"id": 2021,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 2026,
"src": "398:10:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2020,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "398:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2023,
"name": "value",
"nodeType": "VariableDeclaration",
"scope": 2026,
"src": "416:13:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2022,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "416:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2025,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 2026,
"src": "437:10:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes storage pointer"
},
"typeName": {
"id": 2024,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "437:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes storage pointer"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Transaction",
"nodeType": "StructDefinition",
"scope": 2077,
"src": "371:83:10",
"visibility": "public"
},
{
"body": {
"id": 2062,
"nodeType": "Block",
"src": "647:225:10",
"statements": [
{
"body": {
"id": 2060,
"nodeType": "Block",
"src": "706:160:10",
"statements": [
{
"assignments": [
2044
],
"declarations": [
{
"constant": false,
"id": 2044,
"name": "transaction",
"nodeType": "VariableDeclaration",
"scope": 2063,
"src": "720:30:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Transaction_$2026_memory_ptr",
"typeString": "struct MultiSendStruct.Transaction memory"
},
"typeName": {
"contractScope": null,
"id": 2043,
"name": "Transaction",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2026,
"src": "720:11:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Transaction_$2026_storage_ptr",
"typeString": "struct MultiSendStruct.Transaction storage pointer"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2048,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 2045,
"name": "transactions",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2029,
"src": "753:12:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Transaction_$2026_memory_$dyn_memory_ptr",
"typeString": "struct MultiSendStruct.Transaction memory[] memory"
}
},
"id": 2047,
"indexExpression": {
"argumentTypes": null,
"id": 2046,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2033,
"src": "766:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "753:15:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Transaction_$2026_memory",
"typeString": "struct MultiSendStruct.Transaction memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "720:48:10"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2051,
"name": "transaction",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2044,
"src": "802:11:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Transaction_$2026_memory_ptr",
"typeString": "struct MultiSendStruct.Transaction memory"
}
},
"id": 2052,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "to",
"nodeType": "MemberAccess",
"referencedDeclaration": 2021,
"src": "802:14:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2053,
"name": "transaction",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2044,
"src": "818:11:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Transaction_$2026_memory_ptr",
"typeString": "struct MultiSendStruct.Transaction memory"
}
},
"id": 2054,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": 2023,
"src": "818:17:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2055,
"name": "transaction",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2044,
"src": "837:11:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Transaction_$2026_memory_ptr",
"typeString": "struct MultiSendStruct.Transaction memory"
}
},
"id": 2056,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "data",
"nodeType": "MemberAccess",
"referencedDeclaration": 2025,
"src": "837:16:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes memory"
}
],
"id": 2050,
"name": "executeCall",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2076,
"src": "790:11:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$",
"typeString": "function (address,uint256,bytes memory) returns (bool)"
}
},
"id": 2057,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "790:64:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 2049,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2092,
"src": "782:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 2058,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "782:73:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2059,
"nodeType": "ExpressionStatement",
"src": "782:73:10"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2039,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2036,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2033,
"src": "676:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2037,
"name": "transactions",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2029,
"src": "680:12:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Transaction_$2026_memory_$dyn_memory_ptr",
"typeString": "struct MultiSendStruct.Transaction memory[] memory"
}
},
"id": 2038,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "680:19:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "676:23:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 2061,
"initializationExpression": {
"assignments": [
2033
],
"declarations": [
{
"constant": false,
"id": 2033,
"name": "i",
"nodeType": "VariableDeclaration",
"scope": 2063,
"src": "661:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2032,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "661:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2035,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 2034,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "673:1:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "661:13:10"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 2041,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "701:3:10",
"subExpression": {
"argumentTypes": null,
"id": 2040,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2033,
"src": "701:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2042,
"nodeType": "ExpressionStatement",
"src": "701:3:10"
},
"nodeType": "ForStatement",
"src": "657:209:10"
}
]
},
"id": 2063,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "multiSend",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2030,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2029,
"name": "transactions",
"nodeType": "VariableDeclaration",
"scope": 2063,
"src": "600:26:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Transaction_$2026_memory_$dyn_memory_ptr",
"typeString": "struct MultiSendStruct.Transaction memory[] memory"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 2027,
"name": "Transaction",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2026,
"src": "600:11:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Transaction_$2026_storage_ptr",
"typeString": "struct MultiSendStruct.Transaction storage pointer"
}
},
"id": 2028,
"length": null,
"nodeType": "ArrayTypeName",
"src": "600:13:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Transaction_$2026_storage_$dyn_storage_ptr",
"typeString": "struct MultiSendStruct.Transaction storage ref[] storage pointer"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "599:28:10"
},
"payable": false,
"returnParameters": {
"id": 2031,
"nodeType": "ParameterList",
"parameters": [],
"src": "647:0:10"
},
"scope": 2077,
"src": "581:291:10",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 2075,
"nodeType": "Block",
"src": "990:119:10",
"statements": [
{
"externalReferences": [
{
"data": {
"declaration": 2069,
"isOffset": false,
"isSlot": false,
"src": "1062:4:10",
"valueSize": 1
}
},
{
"data": {
"declaration": 2069,
"isOffset": false,
"isSlot": false,
"src": "1081:4:10",
"valueSize": 1
}
},
{
"success": {
"declaration": 2072,
"isOffset": false,
"isSlot": false,
"src": "1023:7:10",
"valueSize": 1
}
},
{
"to": {
"declaration": 2065,
"isOffset": false,
"isSlot": false,
"src": "1047:2:10",
"valueSize": 1
}
},
{
"value": {
"declaration": 2067,
"isOffset": false,
"isSlot": false,
"src": "1051:5:10",
"valueSize": 1
}
}
],
"id": 2074,
"nodeType": "InlineAssembly",
"operations": "{\n success := call(not(0), to, value, add(data, 0x20), mload(data), 0, 0)\n}",
"src": "1000:109:10"
}
]
},
"id": 2076,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "executeCall",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2070,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2065,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 2076,
"src": "899:10:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2064,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "899:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2067,
"name": "value",
"nodeType": "VariableDeclaration",
"scope": 2076,
"src": "911:13:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2066,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "911:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2069,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 2076,
"src": "926:10:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
"typeName": {
"id": 2068,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "926:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes storage pointer"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "898:39:10"
},
"payable": false,
"returnParameters": {
"id": 2073,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2072,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 2076,
"src": "972:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2071,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "972:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "971:14:10"
},
"scope": 2077,
"src": "878:231:10",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 2078,
"src": "339:772:10"
}
],
"src": "0:1112:10"
},
"legacyAST": {
"absolutePath": "/Users/apanizo/git/gnosis/safe-contracts/contracts/libraries/MultiSendStruct.sol",
"exportedSymbols": {
"MultiSendStruct": [
2077
]
},
"id": 2078,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2018,
"literals": [
"solidity",
"^",
"0.4",
".19"
],
"nodeType": "PragmaDirective",
"src": "0:24:10"
},
{
"id": 2019,
"literals": [
"experimental",
"ABIEncoderV2"
],
"nodeType": "PragmaDirective",
"src": "25:33:10"
},
{
"baseContracts": [],
"contractDependencies": [],
"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>\n @author Richard Meissner - <richard@gnosis.pm>",
"fullyImplemented": true,
"id": 2077,
"linearizedBaseContracts": [
2077
],
"name": "MultiSendStruct",
"nodeType": "ContractDefinition",
"nodes": [
{
"canonicalName": "MultiSendStruct.Transaction",
"id": 2026,
"members": [
{
"constant": false,
"id": 2021,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 2026,
"src": "398:10:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2020,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "398:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2023,
"name": "value",
"nodeType": "VariableDeclaration",
"scope": 2026,
"src": "416:13:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2022,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "416:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2025,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 2026,
"src": "437:10:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes storage pointer"
},
"typeName": {
"id": 2024,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "437:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes storage pointer"
}
},
"value": null,
"visibility": "internal"
}
],
"name": "Transaction",
"nodeType": "StructDefinition",
"scope": 2077,
"src": "371:83:10",
"visibility": "public"
},
{
"body": {
"id": 2062,
"nodeType": "Block",
"src": "647:225:10",
"statements": [
{
"body": {
"id": 2060,
"nodeType": "Block",
"src": "706:160:10",
"statements": [
{
"assignments": [
2044
],
"declarations": [
{
"constant": false,
"id": 2044,
"name": "transaction",
"nodeType": "VariableDeclaration",
"scope": 2063,
"src": "720:30:10",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Transaction_$2026_memory_ptr",
"typeString": "struct MultiSendStruct.Transaction memory"
},
"typeName": {
"contractScope": null,
"id": 2043,
"name": "Transaction",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2026,
"src": "720:11:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Transaction_$2026_storage_ptr",
"typeString": "struct MultiSendStruct.Transaction storage pointer"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2048,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 2045,
"name": "transactions",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2029,
"src": "753:12:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Transaction_$2026_memory_$dyn_memory_ptr",
"typeString": "struct MultiSendStruct.Transaction memory[] memory"
}
},
"id": 2047,
"indexExpression": {
"argumentTypes": null,
"id": 2046,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2033,
"src": "766:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "753:15:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Transaction_$2026_memory",
"typeString": "struct MultiSendStruct.Transaction memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "720:48:10"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2051,
"name": "transaction",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2044,
"src": "802:11:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Transaction_$2026_memory_ptr",
"typeString": "struct MultiSendStruct.Transaction memory"
}
},
"id": 2052,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "to",
"nodeType": "MemberAccess",
"referencedDeclaration": 2021,
"src": "802:14:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2053,
"name": "transaction",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2044,
"src": "818:11:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Transaction_$2026_memory_ptr",
"typeString": "struct MultiSendStruct.Transaction memory"
}
},
"id": 2054,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "value",
"nodeType": "MemberAccess",
"referencedDeclaration": 2023,
"src": "818:17:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2055,
"name": "transaction",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2044,
"src": "837:11:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Transaction_$2026_memory_ptr",
"typeString": "struct MultiSendStruct.Transaction memory"
}
},
"id": 2056,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "data",
"nodeType": "MemberAccess",
"referencedDeclaration": 2025,
"src": "837:16:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bytes_memory",
"typeString": "bytes memory"
}
],
"id": 2050,
"name": "executeCall",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2076,
"src": "790:11:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$",
"typeString": "function (address,uint256,bytes memory) returns (bool)"
}
},
"id": 2057,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "790:64:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 2049,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2092,
"src": "782:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 2058,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "782:73:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 2059,
"nodeType": "ExpressionStatement",
"src": "782:73:10"
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 2039,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 2036,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2033,
"src": "676:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2037,
"name": "transactions",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2029,
"src": "680:12:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Transaction_$2026_memory_$dyn_memory_ptr",
"typeString": "struct MultiSendStruct.Transaction memory[] memory"
}
},
"id": 2038,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "680:19:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "676:23:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 2061,
"initializationExpression": {
"assignments": [
2033
],
"declarations": [
{
"constant": false,
"id": 2033,
"name": "i",
"nodeType": "VariableDeclaration",
"scope": 2063,
"src": "661:9:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2032,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "661:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2035,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 2034,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "673:1:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "661:13:10"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 2041,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "701:3:10",
"subExpression": {
"argumentTypes": null,
"id": 2040,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2033,
"src": "701:1:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 2042,
"nodeType": "ExpressionStatement",
"src": "701:3:10"
},
"nodeType": "ForStatement",
"src": "657:209:10"
}
]
},
"id": 2063,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "multiSend",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2030,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2029,
"name": "transactions",
"nodeType": "VariableDeclaration",
"scope": 2063,
"src": "600:26:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Transaction_$2026_memory_$dyn_memory_ptr",
"typeString": "struct MultiSendStruct.Transaction memory[] memory"
},
"typeName": {
"baseType": {
"contractScope": null,
"id": 2027,
"name": "Transaction",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2026,
"src": "600:11:10",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Transaction_$2026_storage_ptr",
"typeString": "struct MultiSendStruct.Transaction storage pointer"
}
},
"id": 2028,
"length": null,
"nodeType": "ArrayTypeName",
"src": "600:13:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Transaction_$2026_storage_$dyn_storage_ptr",
"typeString": "struct MultiSendStruct.Transaction storage ref[] storage pointer"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "599:28:10"
},
"payable": false,
"returnParameters": {
"id": 2031,
"nodeType": "ParameterList",
"parameters": [],
"src": "647:0:10"
},
"scope": 2077,
"src": "581:291:10",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 2075,
"nodeType": "Block",
"src": "990:119:10",
"statements": [
{
"externalReferences": [
{
"data": {
"declaration": 2069,
"isOffset": false,
"isSlot": false,
"src": "1062:4:10",
"valueSize": 1
}
},
{
"data": {
"declaration": 2069,
"isOffset": false,
"isSlot": false,
"src": "1081:4:10",
"valueSize": 1
}
},
{
"success": {
"declaration": 2072,
"isOffset": false,
"isSlot": false,
"src": "1023:7:10",
"valueSize": 1
}
},
{
"to": {
"declaration": 2065,
"isOffset": false,
"isSlot": false,
"src": "1047:2:10",
"valueSize": 1
}
},
{
"value": {
"declaration": 2067,
"isOffset": false,
"isSlot": false,
"src": "1051:5:10",
"valueSize": 1
}
}
],
"id": 2074,
"nodeType": "InlineAssembly",
"operations": "{\n success := call(not(0), to, value, add(data, 0x20), mload(data), 0, 0)\n}",
"src": "1000:109:10"
}
]
},
"id": 2076,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "executeCall",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 2070,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2065,
"name": "to",
"nodeType": "VariableDeclaration",
"scope": 2076,
"src": "899:10:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 2064,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "899:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2067,
"name": "value",
"nodeType": "VariableDeclaration",
"scope": 2076,
"src": "911:13:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 2066,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "911:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 2069,
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 2076,
"src": "926:10:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
"typeName": {
"id": 2068,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "926:5:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes storage pointer"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "898:39:10"
},
"payable": false,
"returnParameters": {
"id": 2073,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 2072,
"name": "success",
"nodeType": "VariableDeclaration",
"scope": 2076,
"src": "972:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 2071,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "972:4:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "971:14:10"
},
"scope": 2077,
"src": "878:231:10",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
}
],
"scope": 2078,
"src": "339:772:10"
}
],
"src": "0:1112:10"
},
"compiler": {
"name": "solc",
"version": "0.4.19+commit.c4cbbb05.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.0",
"updatedAt": "2018-05-04T10:42:18.395Z"
}